package timmy
Module Timmy.Daytime
A day of the day.
A day of the day.
Type
type js =
< hours : Js_of_ocaml.Js.number Js_of_ocaml.Js.readonly_prop
; minutes : Js_of_ocaml.Js.number Js_of_ocaml.Js.readonly_prop
; seconds : Js_of_ocaml.Js.number Js_of_ocaml.Js.readonly_prop >
Js_of_ocaml.Js.tConstruction
val make :
hours:Base.int ->
minutes:Base.int ->
seconds:Base.int ->
(t, Base.string) Base.Result.tmake ~hours ~minutes ~int is { hours; minutes; seconds } if it represents a valid time of the day or a relevant error message otherwise.
Well known values
val latest : tlatest is {hours = 23; minutes = 59; seconds = 59}
val midnight : tmidnight is {hours = 0; minutes = 0; seconds = 0}
val noon : tnoon is {hours = 12; minutes = 0; seconds = 0}
Time manipulation
val with_daytime : timezone:Timezone.t -> t -> Time.t -> Time.twith_daytime ~timezone daytime time is daytime time of the day on the same date as time in timezone.
Time conversions
val of_time : timezone:Timezone.t -> Time.t -> tof_time ~timezone time is the time of the day at time in timezone.
val to_time : timezone:Timezone.t -> Date.t -> t -> Time.tto_time ~timezone date daytime is the time at daytime on date in timezone. When the date and datetime do not exist in timezone because of a time transition (eg. daylight saving), the returned time will be shifted to an existing hour. The manner in which the shift is applied is system dependant.
Comparison
include Base.Comparable.S with type t := t
include Base.Comparisons.S with type t := t
include Base.Comparisons.Infix with type t := t
compare t1 t2 returns 0 if t1 is equal to t2, a negative integer if t1 is less than t2, and a positive integer if t1 is greater than t2.
ascending is identical to compare. descending x y = ascending y x. These are intended to be mnemonic when used like List.sort ~compare:ascending and List.sort ~cmp:descending, since they cause the list to be sorted in ascending or descending order, respectively.
clamp_exn t ~min ~max returns t', the closest value to t such that between t' ~low:min ~high:max is true.
Raises if not (min <= max).
val clamp : t -> min:t -> max:t -> t Base.Or_error.tinclude Base.Comparator.S with type t := t
val comparator : (t, comparator_witness) Base.Comparator.comparatorOperators
module O : sig ... endConvenience module to only pull operators.
include module type of O
val (+) : t -> Span.t -> (t, Base.string) Base.Result.tdaytime + span is the daytime after span has elapsed, or a relevant error message if the result is out of bounds.
Scalar conversions
Integer
val of_int : Base.int -> (t, Base.string) Base.Result.tof_int n the daytime n seconds after midnight or a relevant error message if the result is out of bounds.
Pretty-print
val pp_opt :
?format:[ `_12 | `_24 ] ->
?precision:[ `Hours | `Minutes | `Seconds ] ->
?size:[ `Long | `Short ] ->
Base.unit ->
t Fmt.tpp_opt ~format ~precision ~size () f daytime pretty-prints daytime to f according to the given options.
format:`_12prints in a US-style twelve hour format (eg.12AM,1:30AM,12PM,1:30PM),`_24prints in twelve twenty-four hour format (eg.00:00,1:30,12:00,13:30). Default is`_24.precision:`Hoursdisplays only hours (eg.1PM,13),`Minutesalso displays minutes (eg.13:42,1:42PM) and`Secondsadditionally displays seconds (eg.13:42:51,1:42:51PM). Default is`Seconds.size:`Longdisplays null minutes and seconds (eg.12:42:00,13:00:00) while`Shortomits them (eg.12:42,13). Default is`Short.
Tuple
to_tuple { hours; minutes; seconds } is (hours, minutes, seconds).
val of_tuple :
(Base.int * Base.int * Base.int) ->
(t, Base.string) Base.Result.tof_tuple (hours, minutes, seconds) is the corresponding time of the day if it is valid or a relevant error message otherwise.
val of_tuple_exn :
?here:Base.Source_code_position.t ->
(Base.int * Base.int * Base.int) ->
tof_tuple (hours, minutes, seconds) is the corresponding time of the day