Fixed formatTime

This commit is contained in:
thepaperpilot 2021-08-23 23:54:49 -05:00
parent bb54904464
commit 040fcfdf5f

View file

@ -114,48 +114,42 @@ export function formatWhole(num: DecimalSource): string {
return format(num, 0); return format(num, 0);
} }
export function formatTime(s: DecimalSource): string { export function formatTime(seconds: DecimalSource): string {
if (Decimal.gt(s, 2 ^ 51)) { if (Decimal.gt(seconds, 2 ** 51)) {
// integer precision limit // integer precision limit
return format(Decimal.div(s, 31536000)) + "y"; return format(Decimal.div(seconds, 31536000)) + "y";
} }
s = new Decimal(s).toNumber(); seconds = new Decimal(seconds).toNumber();
if (s < 60) { if (seconds < 60) {
return format(s) + "s"; return format(seconds) + "s";
} else if (s < 3600) { } else if (seconds < 3600) {
return formatWhole(Math.floor(s / 60)) + "m " + format(s % 60) + "s"; return formatWhole(Math.floor(seconds / 60)) + "m " + format(seconds % 60) + "s";
} else if (s < 86400) { } else if (seconds < 86400) {
return ( return (
formatWhole(Math.floor(s / 3600)) + formatWhole(Math.floor(seconds / 3600)) +
"h " + "h " +
formatWhole(Math.floor(s / 60) % 60) + formatWhole(Math.floor(seconds / 60) % 60) +
"m " + "m " +
format(s % 60) + format(seconds % 60) +
"s" "s"
); );
} else if (s < 31536000) { } else if (seconds < 31536000) {
return ( return (
formatWhole(Math.floor(s / 84600) % 365) + formatWhole(Math.floor(seconds / 84600) % 365) +
"d " + "d " +
formatWhole(Math.floor(s / 3600) % 24) + formatWhole(Math.floor(seconds / 3600) % 24) +
"h " + "h " +
formatWhole(Math.floor(s / 60) % 60) + formatWhole(Math.floor(seconds / 60) % 60) +
"m " + "m"
format(s % 60) +
"s"
); );
} else { } else {
return ( return (
formatWhole(Math.floor(s / 31536000)) + formatWhole(Math.floor(seconds / 31536000)) +
"y " + "y " +
formatWhole(Math.floor(s / 84600) % 365) + formatWhole(Math.floor(seconds / 84600) % 365) +
"d " + "d " +
formatWhole(Math.floor(s / 3600) % 24) + formatWhole(Math.floor(seconds / 3600) % 24) +
"h " + "h"
formatWhole(Math.floor(s / 60) % 60) +
"m " +
format(s % 60) +
"s"
); );
} }
} }