package timmy

  1. Overview
  2. Docs

A week of a year.

A week of a year.

Type

type t = private {
  1. year : int;
  2. n : int;
}

A week of a year.

Per ISO 8601 week date system, a week is attributed to the year its Thursday is in.

type js = < n : Js_of_ocaml.Js.number Js_of_ocaml.Js.readonly_prop ; year : Js_of_ocaml.Js.number Js_of_ocaml.Js.readonly_prop > Js_of_ocaml.Js.t

Construction

val make : year:Base.int -> Base.int -> (t, Base.string) Base.Result.t

make ~year n is { n; year } if it represents a valid week or a relevant error message otherwise.

Time manipulation

val days : t -> Date.t Base.Sequence.t

days week is the sequence of dates in week in chronological order.

val day : t -> Weekday.t -> Date.t

day week weekday is the weekday of week.

Time conversions

val to_date : t -> Date.t

to_date week is the first day (Monday) of week

val of_date : Date.t -> t

of_date date is the week that includes date

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 -> Base.int -> t

time + span is the time point span after time.

Scalar conversions

Pretty-print

val pp : t Fmt.t

pp f week prints week to f in YYYY-NN format, eg. 2021-02.

String

val to_string : t -> Base.string

to_string week is the YYYY-WW representation of week, eg. 2022-03.

val of_string : Base.string -> (t, Base.string) Base.Result.t

of_string s is the week represented by s as yielded by to_string or a relevant error message if it is invalid.

OCaml

Innovation. Community. Security.