mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 12:27:35 +00:00
LibJS: Fix use of "modulo" for negative values in balance_time()
This commit is contained in:
parent
3d84fb64c3
commit
b3ea7332b2
1 changed files with 6 additions and 6 deletions
|
@ -280,37 +280,37 @@ DaysAndTime balance_time(i64 hour, i64 minute, i64 second, i64 millisecond, i64
|
||||||
microsecond += nanosecond / 1000;
|
microsecond += nanosecond / 1000;
|
||||||
|
|
||||||
// 3. Set nanosecond to nanosecond modulo 1000.
|
// 3. Set nanosecond to nanosecond modulo 1000.
|
||||||
nanosecond %= 1000;
|
nanosecond = modulo(nanosecond, 1000l);
|
||||||
|
|
||||||
// 4. Set millisecond to millisecond + floor(microsecond / 1000).
|
// 4. Set millisecond to millisecond + floor(microsecond / 1000).
|
||||||
millisecond += microsecond / 1000;
|
millisecond += microsecond / 1000;
|
||||||
|
|
||||||
// 5. Set microsecond to microsecond modulo 1000.
|
// 5. Set microsecond to microsecond modulo 1000.
|
||||||
microsecond %= 1000;
|
microsecond = modulo(microsecond, 1000l);
|
||||||
|
|
||||||
// 6. Set second to second + floor(millisecond / 1000).
|
// 6. Set second to second + floor(millisecond / 1000).
|
||||||
second += millisecond / 1000;
|
second += millisecond / 1000;
|
||||||
|
|
||||||
// 7. Set millisecond to millisecond modulo 1000.
|
// 7. Set millisecond to millisecond modulo 1000.
|
||||||
millisecond %= 1000;
|
millisecond = modulo(millisecond, 1000l);
|
||||||
|
|
||||||
// 8. Set minute to minute + floor(second / 60).
|
// 8. Set minute to minute + floor(second / 60).
|
||||||
minute += second / 60;
|
minute += second / 60;
|
||||||
|
|
||||||
// 9. Set second to second modulo 60.
|
// 9. Set second to second modulo 60.
|
||||||
second %= 60;
|
second = modulo(second, 60l);
|
||||||
|
|
||||||
// 10. Set hour to hour + floor(minute / 60).
|
// 10. Set hour to hour + floor(minute / 60).
|
||||||
hour += minute / 60;
|
hour += minute / 60;
|
||||||
|
|
||||||
// 11. Set minute to minute modulo 60.
|
// 11. Set minute to minute modulo 60.
|
||||||
minute %= 60;
|
minute = modulo(minute, 60l);
|
||||||
|
|
||||||
// 12. Let days be floor(hour / 24).
|
// 12. Let days be floor(hour / 24).
|
||||||
u8 days = hour / 24;
|
u8 days = hour / 24;
|
||||||
|
|
||||||
// 13. Set hour to hour modulo 24.
|
// 13. Set hour to hour modulo 24.
|
||||||
hour %= 24;
|
hour = modulo(hour, 24l);
|
||||||
|
|
||||||
// 14. Return the Record { [[Days]]: days, [[Hour]]: hour, [[Minute]]: minute, [[Second]]: second, [[Millisecond]]: millisecond, [[Microsecond]]: microsecond, [[Nanosecond]]: nanosecond }.
|
// 14. Return the Record { [[Days]]: days, [[Hour]]: hour, [[Minute]]: minute, [[Second]]: second, [[Millisecond]]: millisecond, [[Microsecond]]: microsecond, [[Nanosecond]]: nanosecond }.
|
||||||
return DaysAndTime {
|
return DaysAndTime {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue