1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:27:35 +00:00

LibJS: Fix logic typo in balance_duration() hours calculation

By using milliseconds_division_result instead of seconds_division_result
here, the result for hours was off by a factor of 60.
This commit is contained in:
Linus Groh 2021-11-13 13:24:24 +00:00
parent b97f9f8e17
commit f0cd727d74
3 changed files with 3 additions and 3 deletions

View file

@ -399,7 +399,7 @@ ThrowCompletionOr<BalancedDuration> balance_duration(GlobalObject& global_object
// h. Set seconds to seconds modulo 60.
seconds = seconds_division_result.remainder.to_double();
// i. Set hours to floor(minutes / 60).
auto minutes_division_result = milliseconds_division_result.quotient.divided_by(Crypto::UnsignedBigInteger(60));
auto minutes_division_result = seconds_division_result.quotient.divided_by(Crypto::UnsignedBigInteger(60));
hours = minutes_division_result.quotient.to_double();
// j. Set minutes to minutes modulo 60.
minutes = minutes_division_result.remainder.to_double();

View file

@ -7,7 +7,7 @@ describe("correct behavior", () => {
const instant1 = new Temporal.Instant(1625614920000000000n);
const instant2 = new Temporal.Instant(0n);
expect(instant1.since(instant2).seconds).toBe(1625614920);
expect(instant1.since(instant2, { largestUnit: "hour" }).hours).toBe(27093582);
expect(instant1.since(instant2, { largestUnit: "hour" }).hours).toBe(451559);
});
});

View file

@ -7,7 +7,7 @@ describe("correct behavior", () => {
const instant1 = new Temporal.Instant(0n);
const instant2 = new Temporal.Instant(1625614920000000000n);
expect(instant1.until(instant2).seconds).toBe(1625614920);
expect(instant1.until(instant2, { largestUnit: "hour" }).hours).toBe(27093582);
expect(instant1.until(instant2, { largestUnit: "hour" }).hours).toBe(451559);
});
});