mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:27:35 +00:00
LibJS: Fix incorrect use of "modulo" in {hour,min,sec,ms}_from_time()
These all would return incorrect results for negative time values. Also adds a missing floor() in sec_from_time().
This commit is contained in:
parent
d82e41440c
commit
6b2e004c28
1 changed files with 5 additions and 4 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <AK/StringBuilder.h>
|
||||
#include <LibCore/DateTime.h>
|
||||
#include <LibJS/Runtime/AbstractOperations.h>
|
||||
#include <LibJS/Runtime/Date.h>
|
||||
#include <LibJS/Runtime/GlobalObject.h>
|
||||
#include <time.h>
|
||||
|
@ -282,28 +283,28 @@ u8 month_from_time(double t)
|
|||
u8 hour_from_time(double t)
|
||||
{
|
||||
// 𝔽(floor(ℝ(t / msPerHour)) modulo HoursPerDay)
|
||||
return static_cast<u8>(fmod(floor(t / MS_PER_HOUR), HOURS_PER_DAY));
|
||||
return static_cast<u8>(modulo(floor(t / MS_PER_HOUR), HOURS_PER_DAY));
|
||||
}
|
||||
|
||||
// MinFromTime(t), https://tc39.es/ecma262/#eqn-MinFromTime
|
||||
u8 min_from_time(double t)
|
||||
{
|
||||
// 𝔽(floor(ℝ(t / msPerMinute)) modulo MinutesPerHour)
|
||||
return static_cast<u8>(fmod(floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR));
|
||||
return static_cast<u8>(modulo(floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR));
|
||||
}
|
||||
|
||||
// SecFromTime(t), https://tc39.es/ecma262/#eqn-SecFromTime
|
||||
u8 sec_from_time(double t)
|
||||
{
|
||||
// 𝔽(floor(ℝ(t / msPerSecond)) modulo SecondsPerMinute)
|
||||
return static_cast<u8>(fmod(t / MS_PER_SECOND, SECONDS_PER_MINUTE));
|
||||
return static_cast<u8>(modulo(floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE));
|
||||
}
|
||||
|
||||
// msFromTime(t), https://tc39.es/ecma262/#eqn-msFromTime
|
||||
u16 ms_from_time(double t)
|
||||
{
|
||||
// 𝔽(ℝ(t) modulo msPerSecond)
|
||||
return static_cast<u16>(fmod(t, MS_PER_SECOND));
|
||||
return static_cast<u16>(modulo(t, MS_PER_SECOND));
|
||||
}
|
||||
|
||||
// 21.4.1.11 MakeTime ( hour, min, sec, ms ), https://tc39.es/ecma262/#sec-maketime
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue