Time
¶
The built-in type Time
represents the time of day to millisecond precision.
Time::components : Time -> Time::Components
¶
Returns the components of the time value. The returned data type has the following definition:
module Time {
type Components {
hour : Int,
minute : Int,
second : Int,
millisecond : Int
}
}
The hour
field is in the range [0 .. 23]
, the minute
and second
fields are in the range [0 .. 59]
, and the millisecond
field is in the range [0 .. 999]
.
Examples¶
val a = Time::components (Time::from 12 13 14 15)
// = Time::Components { hour = 12, minute = 13, second = 14, millisecond = 15 }
Time::fromComponents : Time::Components -> Time
¶
Constructs a Time
value from its components.
The function is partial and fails if any of the input components are outside their valid ranges. See Time::components for details.
Examples¶
val a = Time::fromComponents Time::Components { hour = 12, minute = 13, second = 14, millisecond = 999 }
// = Time::from 12 13 14 999
Time::from : Int -> Int -> Int -> Int -> Time
¶
Convenience wrapper for Time::fromComponents which takes the components as positional arguments. The order of arguments is
- hour
- minute
- second
- millisecond
The function is partial and fails if any of the input components are outside their valid ranges. See Time::components for details.
Time::addDuration : Duration -> Time -> Time
¶
Adds a duration to a given time.
The function is total. If the resulting time value exceeds the valid range it simply wraps around.
Examples¶
// Add 10 minutes, 5 seconds and 200 milliseconds to 12:37:00.000
val a = Time::addDuration (Duration::from 605 200) (Time::from 12 37 0 0)
// = Time::from 12 47 5 200 // 12:47:05.200
// Demonstrate overflow behavior. Adding 2 minutes to 23:59:59.500
val b = Time::addDuration (Duration::from 120 0) (Time::from 23 59 59 500)
// = Time::from 0 1 59 500 // 00:01:59.500