diff options
Diffstat (limited to 'lib/kernel/date.mli')
| -rw-r--r-- | lib/kernel/date.mli | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/kernel/date.mli b/lib/kernel/date.mli index b684d61..2f632c8 100644 --- a/lib/kernel/date.mli +++ b/lib/kernel/date.mli @@ -3,7 +3,7 @@ arithmetic and comparison are total and cheap. *) type t -type weekday = Sun | Mon | Tue | Wed | Thu | Fri | Sat +type weekday = Sun | Mon | Tue | Wed | Thu | Fri | Sat [@@deriving sexp] (** [make ~year ~month ~day] validates the date; rejects a month/day out of range and any year outside 1583..9999. *) @@ -21,3 +21,16 @@ val to_rata : t -> int val of_rata : int -> t val add_days : t -> int -> t val compare : t -> t -> int + +(** ISO-8601 rendering and validating parsing. [of_iso8601] enforces the same + domain as {!make}. *) +val to_iso8601 : t -> string +val of_iso8601 : string -> (t, string) result + +val weekday_to_string : weekday -> string + +(** Sexp form is an ISO-8601 atom, e.g. [2026-04-05]. [t_of_sexp] validates and + raises [Of_sexp_error] on a malformed or out-of-domain date; loaders convert + that to a [result]. *) +val t_of_sexp : Sexplib0.Sexp.t -> t +val sexp_of_t : t -> Sexplib0.Sexp.t |
