Simple better format for Duration toString
This commit is contained in:
parent
fff2f5da59
commit
6af2e242f8
|
@ -195,7 +195,7 @@ const SquiggleItem: React.FC<SquiggleItemProps> = ({
|
||||||
{expression.value.toDateString()}
|
{expression.value.toDateString()}
|
||||||
</VariableBox>
|
</VariableBox>
|
||||||
);
|
);
|
||||||
case "timeDuration":{
|
case "timeDuration": {
|
||||||
return (
|
return (
|
||||||
<VariableBox heading="Time Duration" showTypes={showTypes}>
|
<VariableBox heading="Time Duration" showTypes={showTypes}>
|
||||||
<NumberShower precision={3} number={expression.value} />
|
<NumberShower precision={3} number={expression.value} />
|
||||||
|
|
|
@ -849,23 +849,27 @@ module Duration = {
|
||||||
let toHours = (t: t): float => t /. hour
|
let toHours = (t: t): float => t /. hour
|
||||||
let toDays = (t: t): float => t /. day
|
let toDays = (t: t): float => t /. day
|
||||||
let toYears = (t: t): float => t /. year
|
let toYears = (t: t): float => t /. year
|
||||||
|
|
||||||
let toString = (t: t): string => {
|
let toString = (t: t): string => {
|
||||||
|
let shouldPluralize = f => f != 1.0
|
||||||
|
let display = (f: float, s: string) =>
|
||||||
|
`${Float.with3DigitsPrecision(f)} ${s}${shouldPluralize(f) ? "s" : ""}`
|
||||||
if t >= year {
|
if t >= year {
|
||||||
Float.with3DigitsPrecision(t /. year) ++ " years"
|
display(t /. year, "year")
|
||||||
} else if t >= day {
|
} else if t >= day {
|
||||||
Float.with3DigitsPrecision(t /. day) ++ " days"
|
display(t /. day, "day")
|
||||||
} else if t >= hour {
|
} else if t >= hour {
|
||||||
Float.with3DigitsPrecision(t /. hour) ++ " hours"
|
display(t /. hour, "hour")
|
||||||
} else if t >= minute {
|
} else if t >= minute {
|
||||||
Float.with3DigitsPrecision(t /. minute) ++ " minutes"
|
display(t /. minute, "minute")
|
||||||
} else {
|
} else {
|
||||||
Float.toFixed(t) ++ "ms"
|
Float.toFixed(t) ++ "ms"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let add = (t1, t2): t => t1 +. t2
|
let add = (t1: t, t2: t): t => t1 +. t2
|
||||||
let subtract = (t1, t2): t => t1 -. t2
|
let subtract = (t1: t, t2: t): t => t1 -. t2
|
||||||
let multiply = (t1, t2): t => t1 *. t2
|
let multiply = (t1: t, t2: t): t => t1 *. t2
|
||||||
let divide = (t1, t2): t => t1 /. t2
|
let divide = (t1: t, t2: t): t => t1 /. t2
|
||||||
}
|
}
|
||||||
|
|
||||||
module Date = {
|
module Date = {
|
||||||
|
@ -899,7 +903,7 @@ module Date = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let makeFromYear = (year: float): result<t, string> => {
|
let makeFromYear = (year: float): result<t, string> => {
|
||||||
let floor = year -> Js.Math.floor_float
|
let floor = year->Js.Math.floor_float
|
||||||
makeWithYearInt(Belt.Float.toInt(floor))->R2.fmap(earlyDate => {
|
makeWithYearInt(Belt.Float.toInt(floor))->R2.fmap(earlyDate => {
|
||||||
let diff = year -. floor
|
let diff = year -. floor
|
||||||
earlyDate->addDuration(diff *. Duration.year)
|
earlyDate->addDuration(diff *. Duration.year)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user