Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Timmy_jsoo.Dateinclude module type of Timmy.Datetype t = Timmy.Date.t = {day : int;The day of the month.
*)month : Month.t;The month of the year.
*)year : int;The year.
*)}A date.
type js = Js_of_ocaml.Js.date Js_of_ocaml.Js.tval make :
year:Base.int ->
month:Month.t ->
day:Base.int ->
(Timmy.Date.t, Base.string) Base.Result.tmake ~year ~month ~day is { day; month; year } if it represents a valid date or a relevant error message otherwise.
val make_overflow :
?day_truncate:Base.bool ->
year:Base.int ->
month:Base.int ->
day:Base.int ->
Base.unit ->
Timmy.Date.tmake_overflow is make except out of range components will readjust the next component until the date becomes valid. This enables to perform simple arithmetics over dates like adding or substracting days and months without worrying about month and year boundaries and readjust the final results.
Month below 1 will underflow to previous years and month above 12 will overflow to the next years, eg. make ~year:2021 ~month:-1 ~day:1 () is {year = 2020; month = 11; day = 1} and make ~year:2021 ~month:25 ~day:1 () is {year = 2023; month = 1; day = 1}.
Unless truncate_day is true, days below 1 will underflow to the previous months and days past the last day of the month will overflow to the next months, eg. make_overflow ~year:1985 ~month:2 ~day:29 () is {year = 1985; month = 3; day = 1}.
If truncate_day is true, the day is clipped to the valid range for the current month. This is useful to do arithmetics on months without risking the day overflowing to the next months if the new month is shorter, eg. make_overflow ~day_truncate:true ~year:1985 ~month:(1 + 1) ~day:31 () is {year = 1985; month = 2; day = 28}.
val add_days : Timmy.Date.t -> Base.int -> Timmy.Date.tadd_days date n is the date occuring n days after date.
max_month_day year month is the last day of the given month of year. It can be 31, 30, 29 or 28.
val weekday : Timmy.Date.t -> Weekday.tweekday date is the day of the week on date.
val of_time : timezone:Timmy.Timezone.t -> Timmy.Time.t -> Timmy.Date.tof_time ~timezone date is the date on date in timezone.
val to_time : timezone:Timmy.Timezone.t -> Timmy.Date.t -> Timmy.Time.tto_time ~timezone date is the time at midnight on date in timezone.
include Base.Comparable.S with type t := tval equal : Timmy.Date.t -> Timmy.Date.t -> boolval compare : Timmy.Date.t -> Timmy.Date.t -> intcompare 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 : Timmy.Date.t -> Timmy.Date.t -> Timmy.Date.tval max : Timmy.Date.t -> Timmy.Date.t -> Timmy.Date.tval ascending : Timmy.Date.t -> Timmy.Date.t -> intascending 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 : Timmy.Date.t -> Timmy.Date.t -> intval between : Timmy.Date.t -> low:Timmy.Date.t -> high:Timmy.Date.t -> boolbetween t ~low ~high means low <= t <= high
val clamp_exn :
Timmy.Date.t ->
min:Timmy.Date.t ->
max:Timmy.Date.t ->
Timmy.Date.tclamp_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 :
Timmy.Date.t ->
min:Timmy.Date.t ->
max:Timmy.Date.t ->
Timmy.Date.t Base__.Or_error.ttype comparator_witness = Timmy.Date.comparator_witnessval comparator :
(Timmy.Date.t, comparator_witness) Base__.Comparator.comparatormodule O = Timmy.Date.OConvenience module to only pull operators.
include module type of Oinclude Base.Comparable.Infix with type t := Timmy__.Date.tval (>=) : Timmy.Date.t -> Timmy.Date.t -> boolval (<=) : Timmy.Date.t -> Timmy.Date.t -> boolval (=) : Timmy.Date.t -> Timmy.Date.t -> boolval (>) : Timmy.Date.t -> Timmy.Date.t -> boolval (<) : Timmy.Date.t -> Timmy.Date.t -> boolval (<>) : Timmy.Date.t -> Timmy.Date.t -> boolval (+) : Timmy.Date.t -> Base.int -> Timmy.Date.tdate + n is add_days date n.
val (-) : Timmy.Date.t -> Timmy.Date.t -> Span.tend - start is the duration elapsed from start to end.
val pp : Timmy.Date.t Fmt.tpp f date prints date to f in RFC3339 format, eg. 2021-10-04.
val pp_human : Timmy.Date.t Fmt.tpp_human f date prints date to f in an unspecified human readable english format, eg. "August 1st 2022".
val pp_relative :
?default:Timmy.Date.t Fmt.t ->
reference:Timmy.Date.t ->
Timmy.Date.t Fmt.tpp_relative ?default ~reference f date prints date to f in an unspecified human readable english format relative to reference, eg. "today", "last Sunday", "Tuesday".
If no relevant relative format is found, default is used. It defaults to pp_human.
val to_string : Timmy.Date.t -> Base.stringto_string date is the RCF3339 representation of date, eg. 2021-10-04.
val of_string : Base.string -> (Timmy.Date.t, Base.string) Base.Result.tof_string s is the date represented by s as per RCF3339 or a relevant error message if it is invalid.
val to_tuple : Timmy.Date.t -> Base.int * Base.int * Base.intto_tuple { year; month; day} is (year, Month.to_int month, day).
val of_tuple :
(Base.int * Base.int * Base.int) ->
(Timmy.Date.t, Base.string) Base.Result.tof_tuple (year, month, day) is the corresponding date 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) ->
Timmy.Date.tof_tuple (year, month, day) is the corresponding date.
val to_sexp : Timmy.Date.t -> Base.Sexp.tto_sexp date is a s-expression representing date.
val to_int : Timmy.Date.t -> Base.intto_int date is the Julian day of date.
val of_int : Base.int -> Timmy.Date.tof_int jd is the date of the Julian day jd.
val to_js : Timmy.Date.t -> Timmy.Date.jsval of_js : Timmy.Date.js -> Timmy.Date.t