Date_sig

`sig
module type S =
sig
type field = Period.date_field
type -'a date constraint 'a = [< Date_sig.S.field ]
type t = Date_sig.S.field Date_sig.S.date
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
exception Out_of_bounds
exception Undefined
val make : Date_sig.S.year -> int -> int -> Date_sig.S.t
val lmake :
year:Date_sig.S.year ->
?month:int -> ?day:int -> unit -> Date_sig.S.t
val make_year : int -> [< `Year ] Date_sig.S.date
val make_year_month : int -> int -> [< `Month | `Year ] Date_sig.S.date
val today : unit -> Date_sig.S.t
val from_jd : int -> Date_sig.S.t
val from_mjd : int -> Date_sig.S.t
val from_day_of_year : Date_sig.S.year -> int -> Date_sig.S.t
val days_in_month :
[< Date_sig.S.field > `Month `Year ] Date_sig.S.date -> int
val day_of_week : Date_sig.S.t -> Date_sig.S.day
val day_of_month : Date_sig.S.t -> int
val day_of_year : Date_sig.S.t -> int
val week : Date_sig.S.t -> int
val month :
[< Date_sig.S.field > `Month ] Date_sig.S.date -> Date_sig.S.month
val year :
[< Date_sig.S.field > `Year ] Date_sig.S.date -> Date_sig.S.year
val to_jd : Date_sig.S.t -> int
val to_mjd : Date_sig.S.t -> int
val equal :
[< Date_sig.S.field ] Date_sig.S.date ->
[< Date_sig.S.field ] Date_sig.S.date -> bool
val compare :
[< Date_sig.S.field ] Date_sig.S.date ->
[< Date_sig.S.field ] Date_sig.S.date -> int
val hash : [< Date_sig.S.field ] Date_sig.S.date -> int
val is_valid_date : Date_sig.S.year -> int -> int -> bool
val is_leap_day : Date_sig.S.t -> bool
val is_gregorian : Date_sig.S.t -> bool
val is_julian : Date_sig.S.t -> bool
val to_unixtm : Date_sig.S.t -> Unix.tm
val from_unixtm : Unix.tm -> Date_sig.S.t
val to_unixfloat : Date_sig.S.t -> float
val from_unixfloat : float -> Date_sig.S.t
val to_business :
Date_sig.S.t -> Date_sig.S.year * int * Date_sig.S.day
val from_business :
Date_sig.S.year -> int -> Date_sig.S.day -> Date_sig.S.t
val int_of_day : Date_sig.S.day -> int
val day_of_int : int -> Date_sig.S.day
val int_of_month : Date_sig.S.month -> int
val month_of_int : int -> Date_sig.S.month
module Period :
sig
type +'a p constraint 'a = [< Date_sig.S.field ]
type +'a period = 'a p constraint 'a = [< field ]
type t = Period.date_field period
val empty : [< Period.date_field ] period
val add :
([< Period.date_field ] as 'a) period -> 'a period -> 'a period
val sub :
([< Period.date_field ] as 'a) period -> 'a period -> 'a period
val opp : ([< Period.date_field ] as 'a) period -> 'a period
val equal :
[< Period.date_field ] period ->
[< Period.date_field ] period -> bool
val compare :
[< Period.date_field ] period ->
[< Period.date_field ] period -> int
val hash : [< Period.date_field ] period -> int
val make : int -> int -> int -> Date_sig.S.t
val lmake :
?year:int -> ?month:int -> ?day:int -> unit -> Date_sig.S.t
val year : int -> [< Date_sig.S.field > `Year ] period
val month : int -> [< Date_sig.S.field > `Month `Year ] period
val week : int -> [< Date_sig.S.field > `Day `Week ] period
val day : int -> [< Date_sig.S.field > `Day `Week ] period
exception Not_computable
val nb_days : [< Date_sig.S.field ] period -> int
val safe_nb_days : [< `Day | `Week ] period -> int
val ymd : [< Date_sig.S.field ] period -> int * int * int
end
val add :
([< Date_sig.S.field ] as 'a) Date_sig.S.date ->
'a Date_sig.S.Period.period -> 'a Date_sig.S.date
val sub :
([< Date_sig.S.field ] as 'a) Date_sig.S.date ->
'a Date_sig.S.date ->
[< Date_sig.S.field > `Day `Week ] Date_sig.S.Period.period
val precise_sub :
([< Date_sig.S.field ] as 'a) Date_sig.S.date ->
'a Date_sig.S.date -> Date_sig.S.Period.t
val rem :
([< Date_sig.S.field ] as 'a) Date_sig.S.date ->
'a Date_sig.S.Period.period -> 'a Date_sig.S.date
val next :
([< Date_sig.S.field ] as 'a) Date_sig.S.date ->
'a -> 'a Date_sig.S.date
val prev :
([< Date_sig.S.field ] as 'a) Date_sig.S.date ->
'a -> 'a Date_sig.S.date
val is_leap_year : Date_sig.S.year -> bool
val same_calendar : Date_sig.S.year -> Date_sig.S.year -> bool
val days_in_year : ?month:Date_sig.S.month -> Date_sig.S.year -> int
val weeks_in_year : Date_sig.S.year -> int
val week_first_last :
int -> Date_sig.S.year -> Date_sig.S.t * Date_sig.S.t
val nth_weekday_of_month :
Date_sig.S.year ->
Date_sig.S.month -> Date_sig.S.day -> int -> Date_sig.S.t
val century : Date_sig.S.year -> int
val millenium : Date_sig.S.year -> int
val solar_number : Date_sig.S.year -> int
val indiction : Date_sig.S.year -> int
val golden_number : Date_sig.S.year -> int
val epact : Date_sig.S.year -> int
val easter : Date_sig.S.year -> Date_sig.S.t
val carnaval : Date_sig.S.year -> Date_sig.S.t
val mardi_gras : Date_sig.S.year -> Date_sig.S.t
val ash : Date_sig.S.year -> Date_sig.S.t
val palm : Date_sig.S.year -> Date_sig.S.t
val easter_friday : Date_sig.S.year -> Date_sig.S.t
val easter_saturday : Date_sig.S.year -> Date_sig.S.t
val easter_monday : Date_sig.S.year -> Date_sig.S.t
val ascension : Date_sig.S.year -> Date_sig.S.t
val withsunday : Date_sig.S.year -> Date_sig.S.t
val withmonday : Date_sig.S.year -> Date_sig.S.t
val corpus_christi : Date_sig.S.year -> Date_sig.S.t
end
end`