Duration Module
Functions for representing and manipulating time spans.
The Duration module provides a Duration type backed by chrono for representing differences in time. Durations can be created from various units and combined with arithmetic operations.
Common patterns
import Duration
let d = Duration.fromHours 2
Duration.toMinutes d -- 120
Functions
Creation
Duration.zero
() -> Duration
Create a zero-length duration
import Duration
Duration.zero ()Try itDuration.fromMillis
Int -> Duration
Create a duration from milliseconds
import Duration
Duration.fromMillis 1500Try itDuration.fromSeconds
Int -> Duration
Create a duration from seconds
import Duration
Duration.fromSeconds 60Try itDuration.fromMinutes
Int -> Duration
Create a duration from minutes
import Duration
Duration.fromMinutes 30Try itDuration.fromHours
Int -> Duration
Create a duration from hours
import Duration
Duration.fromHours 24Try itDuration.fromDays
Int -> Duration
Create a duration from days
import Duration
Duration.fromDays 7Try itDuration.fromWeeks
Int -> Duration
Create a duration from weeks
import Duration
Duration.fromWeeks 2Try itConversion
Duration.toMillis
Duration -> Int
Get the total milliseconds
import Duration
Duration.toMillis (Duration.fromSeconds 5) -- 5000Try itDuration.toSeconds
Duration -> Int
Get the total seconds
import Duration
Duration.toSeconds (Duration.fromMinutes 2) -- 120Try itDuration.toMinutes
Duration -> Int
Get the total minutes
import Duration
Duration.toMinutes (Duration.fromHours 2) -- 120Try itDuration.toHours
Duration -> Int
Get the total hours
import Duration
Duration.toHours (Duration.fromDays 1) -- 24Try itDuration.toDays
Duration -> Int
Get the total days
import Duration
Duration.toDays (Duration.fromWeeks 1) -- 7Try itDuration.toWeeks
Duration -> Int
Get the total weeks
import Duration
Duration.toWeeks (Duration.fromDays 14) -- 2Try itArithmetic
Duration.add
Duration -> Duration -> Result Duration DurationError
Add two durations
import Duration
let d1 = Duration.fromMinutes 30
let d2 = Duration.fromMinutes 45
Duration.add d1 d2Try itDuration.sub
Duration -> Duration -> Result Duration DurationError
Subtract two durations
import Duration
let d1 = Duration.fromMinutes 60
let d2 = Duration.fromMinutes 15
Duration.sub d1 d2Try itDuration.mul
Int -> Duration -> Result Duration DurationError
Multiply duration by an integer
import Duration
let d = Duration.fromMinutes 15
Duration.mul 4 dTry itDuration.div
Int -> Duration -> Result Duration DurationError
Divide duration by an integer
import Duration
let d = Duration.fromMinutes 60
Duration.div 4 dTry itDuration.negate
Duration -> Duration
Negate a duration
import Duration
Duration.negate (Duration.fromSeconds 30)Try itDuration.abs
Duration -> Duration
Get the absolute value of a duration
import Duration
Duration.abs (Duration.fromSeconds (-30))Try itComparison
Duration.isZero
Duration -> Bool
Check if the duration is zero
import Duration
Duration.isZero (Duration.zero ())Try itDuration.isPositive
Duration -> Bool
Check if the duration is positive
import Duration
Duration.isPositive (Duration.fromSeconds 30)Try itDuration.isNegative
Duration -> Bool
Check if the duration is negative
import Duration
Duration.isNegative (Duration.fromSeconds (-30))Try itDuration.compare
Duration -> Duration -> Int
Compare two durations (-1 if less, 0 if equal, 1 if greater)
import Duration
Duration.compare (Duration.fromSeconds 30) (Duration.fromSeconds 60)Try it