birl/duration
Types
Functions
pub fn accurate_decompose(
duration: Duration,
) -> List(#(Int, Unit))
use this if you need very long durations where small inaccuracies could lead to large errors
pub fn accurate_new(values: List(#(Int, Unit))) -> Duration
use this if you need very long durations where small inaccuracies could lead to large errors
pub fn blur(duration: Duration) -> #(Int, Unit)
approximates the duration by a value in a single unit
pub fn blur_to(duration: Duration, unit: Unit) -> Int
approximates the duration by only the given unit
if the duration is not an integer multiple of the unit, the remainder will be disgarded if it’s less than two thirds of the unit, otherwise a single unit will be added to the multiplier.
blur_to(days(16), Month)
->0
blur_to(days(20), Month)
->1
pub fn decompose(duration: Duration) -> List(#(Int, Unit))
use this if you need short durations where a year just means 365 days and a month just means 30 days
pub fn micro_seconds(value: Int) -> Duration
pub fn milli_seconds(value: Int) -> Duration
pub fn new(values: List(#(Int, Unit))) -> Duration
use this if you need short durations where a year just means 365 days and a month just means 30 days
pub fn parse(expression: String) -> Result(Duration, Nil)
you can use this function to create a new duration using expressions like:
"accurate: 1 Year - 2days + 152M -1h + 25 years + 25secs"
where the units are:
Year: y, Y, YEAR, years, Years, ...
Month: mon, Month, mONths, ...
Week: w, W, Week, weeks, ...
Day: d, D, day, Days, ...
Hour: h, H, Hour, Hours, ...
Minute: m, M, Min, minute, Minutes, ...
Second: s, S, sec, Secs, second, Seconds, ...
MilliSecond: ms, Msec, mSecs, milliSecond, MilliSecond, ...
numbers with no unit are considered as microseconds.
specifying accurate:
is equivalent to using accurate_new
.
pub fn scale_down(value: Duration, factor: Int) -> Duration