sig
type t
type day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
type month =
Jan
| Feb
| Mar
| Apr
| May
| Jun
| Jul
| Aug
| Sep
| Oct
| Nov
| Dec
type year = int
type field = [ `Day | `Month | `Week | `Year ]
exception Out_of_bounds
exception Undefined
val make : Date.year -> int -> int -> Date.t
val lmake : year:Date.year -> ?month:int -> ?day:int -> unit -> Date.t
val today : unit -> Date.t
val from_jd : int -> Date.t
val from_mjd : int -> Date.t
val days_in_month : Date.t -> int
val day_of_week : Date.t -> Date.day
val day_of_month : Date.t -> int
val day_of_year : Date.t -> int
val week : Date.t -> int
val month : Date.t -> Date.month
val year : Date.t -> Date.year
val to_jd : Date.t -> int
val to_mjd : Date.t -> int
val compare : Date.t -> Date.t -> int
val equal : Date.t -> Date.t -> bool
val is_leap_day : Date.t -> bool
val is_gregorian : Date.t -> bool
val is_julian : Date.t -> bool
val to_unixtm : Date.t -> Unix.tm
val from_unixtm : Unix.tm -> Date.t
val to_unixfloat : Date.t -> float
val from_unixfloat : float -> Date.t
val to_business : Date.t -> Date.year * int * Date.day
val from_business : Date.year -> int -> Date.day -> Date.t
val int_of_day : Date.day -> int
val day_of_int : int -> Date.day
val int_of_month : Date.month -> int
val month_of_int : int -> Date.month
module Period :
sig
type t
val empty : t
val add : t -> t -> t
val sub : t -> t -> t
val opp : t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val make : int -> int -> int -> Date.t
val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> Date.t
val year : int -> Date.t
val month : int -> Date.t
val week : int -> Date.t
val day : int -> Date.t
exception Not_computable
val nb_days : Date.t -> int
val ymd : Date.t -> int * int * int
end
val add : Date.t -> Date.Period.t -> Date.t
val sub : Date.t -> Date.t -> Date.Period.t
val rem : Date.t -> Date.Period.t -> Date.t
val next : Date.t -> Date.field -> Date.t
val prev : Date.t -> Date.field -> Date.t
val is_leap_year : Date.year -> bool
val same_calendar : Date.year -> Date.year -> bool
val days_in_year : ?month:Date.month -> Date.year -> int
val weeks_in_year : Date.year -> int
val week_first_last : int -> Date.year -> Date.t * Date.t
val nth_weekday_of_month :
Date.year -> Date.month -> Date.day -> int -> Date.t
val century : Date.year -> int
val millenium : Date.year -> int
val solar_number : Date.year -> int
val indiction : Date.year -> int
val golden_number : Date.year -> int
val epact : Date.year -> int
val easter : Date.year -> Date.t
val carnaval : Date.year -> Date.t
val mardi_gras : Date.year -> Date.t
val ash : Date.year -> Date.t
val palm : Date.year -> Date.t
val easter_friday : Date.year -> Date.t
val easter_saturday : Date.year -> Date.t
val easter_monday : Date.year -> Date.t
val ascension : Date.year -> Date.t
val withsunday : Date.year -> Date.t
val withmonday : Date.year -> Date.t
val corpus_christi : Date.year -> Date.t
end