aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel/date.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/date.mli')
-rw-r--r--lib/kernel/date.mli15
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