package timmy

  1. Overview
  2. Docs

A duration.

A duration.

Type

type t

A duration.

Spans may be negative.

type js = int

Construction

val days : int -> t

days n is a duration of n days.

val hours : int -> t

minutes n is a duration of n hours.

val minutes : int -> t

minutes n is a duration of n minutes.

val seconds : int -> t

seconds n is a duration of n seconds.

Time manipulation

val to_days : t -> int

to_days span is the number of days in span floored.

val to_seconds : t -> int

to_days span is the number of seconds in span floored.

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
val equal : t -> t -> bool
val compare : t -> t -> int

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.

val min : t -> t -> t
val max : t -> t -> t
val ascending : t -> t -> int

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.

val descending : t -> t -> int
val between : t -> low:t -> high:t -> bool

between t ~low ~high means low <= t <= high

val clamp_exn : t -> min:t -> max:t -> t

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.t
include Base.Comparator.S with type t := t
type comparator_witness

Operators

module O : sig ... end

Convenience module to only pull operators.

include module type of O

Convenience module to only pull operators.

include Base.Comparable.Infix with type t := t
val (>=) : t -> t -> bool
val (<=) : t -> t -> bool
val (=) : t -> t -> bool
val (>) : t -> t -> bool
val (<) : t -> t -> bool
val (<>) : t -> t -> bool
val (~-) : t -> t

-span's duration is the opposite of span's duration.

val (+) : t -> t -> t

l + r's duration is the sum of l's duration and r's duration.

val (-) : t -> t -> t

l + r's duration is the difference between l's duration and r's duration.

val (*.) : t -> float -> t

span * f's duration is f times span's duration.

val (*) : t -> int -> t

span * i's duration is i times span's duration.

val (/) : t -> t -> int

l / r is l's duration divedid by r's duration, with the semantics of Caml.( / ).

Scalar conversions

Pretty-print

val pp : t Fmt.t

pp f span prints span to f in an unspecified human readable format, e.g. 45s or 2h.

Ptime

val of_ptime : Ptime.Span.t -> t

of_ptime ptime_span is the span equivalent to ptime_span.

val to_ptime : t -> Ptime.Span.t

to_ptime span is the Ptime span equivalent to span.

OCaml

Innovation. Community. Security.