| File lib/ocaml/pkg-lib/calendar/calendarLib.cmi_pretty | GODI Package godi-calendar |
| Library calendar |
| calendarLib.cmi_pretty | Sources |
module Period : sig type date_field = [ `Day | `Month | `Week | `Year ] module type S = sig type +'a period constraint 'a = [< date_field ] type t = date_field period val empty : [< date_field ] period val add : ([< date_field ] as 'a) period -> 'a period -> 'a period val sub : ([< date_field ] as 'a) period -> 'a period -> 'a period val opp : ([< date_field ] as 'a) period -> 'a period val equal : [< date_field ] period -> [< date_field ] period -> bool val compare : [< date_field ] period -> [< date_field ] period -> int val hash : [< date_field ] period -> int end end module Date_sig : sig module type S = sig type field = Period.date_field type -'a date constraint 'a = [< field ] type t = field 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 : year -> int -> int -> t val lmake : year:year -> ?month:int -> ?day:int -> unit -> t val make_year : int -> [< `Year ] date val make_year_month : int -> int -> [< `Month | `Year ] date val today : unit -> t val from_jd : int -> t val from_mjd : int -> t val from_day_of_year : year -> int -> t val days_in_month : [< field > `Month `Year ] date -> int val day_of_week : t -> day val day_of_month : t -> int val day_of_year : t -> int val week : t -> int val month : [< field > `Month ] date -> month val year : [< field > `Year ] date -> year val to_jd : t -> int val to_mjd : t -> int val equal : [< field ] date -> [< field ] date -> bool val compare : [< field ] date -> [< field ] date -> int val hash : [< field ] date -> int val is_valid_date : year -> int -> int -> bool val is_leap_day : t -> bool val is_gregorian : t -> bool val is_julian : t -> bool val to_unixtm : t -> Unix.tm val from_unixtm : Unix.tm -> t val to_unixfloat : t -> float val from_unixfloat : float -> t val to_business : t -> year * int * day val from_business : year -> int -> day -> t val int_of_day : day -> int val day_of_int : int -> day val int_of_month : month -> int val month_of_int : int -> month module Period : sig type +'a p constraint 'a = [< 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 -> t val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t val year : int -> [< field > `Year ] period val month : int -> [< field > `Month `Year ] period val week : int -> [< field > `Day `Week ] period val day : int -> [< field > `Day `Week ] period exception Not_computable val nb_days : [< field ] period -> int val safe_nb_days : [< `Day | `Week ] period -> int val ymd : [< field ] period -> int * int * int end val add : ([< field ] as 'a) date -> 'a Period.period -> 'a date val sub : ([< field ] as 'a) date -> 'a date -> [< field > `Day `Week ] Period.period val rem : ([< field ] as 'a) date -> 'a Period.period -> 'a date val next : ([< field ] as 'a) date -> 'a -> 'a date val prev : ([< field ] as 'a) date -> 'a -> 'a date val is_leap_year : year -> bool val same_calendar : year -> year -> bool val days_in_year : ?month:month -> year -> int val weeks_in_year : year -> int val week_first_last : int -> year -> t * t val nth_weekday_of_month : year -> month -> day -> int -> t val century : year -> int val millenium : year -> int val solar_number : year -> int val indiction : year -> int val golden_number : year -> int val epact : year -> int val easter : year -> t val carnaval : year -> t val mardi_gras : year -> t val ash : year -> t val palm : year -> t val easter_friday : year -> t val easter_saturday : year -> t val easter_monday : year -> t val ascension : year -> t val withsunday : year -> t val withmonday : year -> t val corpus_christi : year -> t end end module Time_sig : sig module type Second = sig type t val from_int : int -> t val from_float : float -> t val to_int : t -> int val to_float : t -> float end module type S = sig type t type field = [ `Hour | `Minute | `Second ] type second module Second : sig type t = second val from_int : int -> t val from_float : float -> t val to_int : t -> int val to_float : t -> float end val make : int -> int -> second -> t val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t val now : unit -> t val midnight : unit -> t val midday : unit -> t val convert : t -> Time_Zone.t -> Time_Zone.t -> t val from_gmt : t -> t val to_gmt : t -> t val normalize : t -> t * int val hour : t -> int val minute : t -> int val second : t -> second val to_seconds : t -> second val to_minutes : t -> float val to_hours : t -> float val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val is_pm : t -> bool val is_am : t -> bool val from_seconds : second -> t val from_minutes : float -> t val from_hours : float -> t module Period : sig type +'a period constraint 'a = [< Period.date_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 length : [< Period.date_field ] period -> second val mul : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val div : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val make : int -> int -> second -> [< Period.date_field ] period val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> [< Period.date_field ] period val hour : int -> [< Period.date_field ] period val minute : int -> [< Period.date_field ] period val second : second -> [< Period.date_field ] period val to_seconds : [< Period.date_field ] period -> second val to_minutes : [< Period.date_field ] period -> float val to_hours : [< Period.date_field ] period -> float end val add : t -> [< Period.date_field ] Period.period -> t val sub : t -> t -> [< Period.date_field ] Period.period val rem : t -> [< Period.date_field ] Period.period -> t val next : t -> field -> t val prev : t -> field -> t end end module Calendar_sig : sig module type S = sig module Date : Date_sig.S module Time : Time_sig.S type t type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat type month = Date.month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec type year = Date.year type second = Time.second type field = [ `Day | `Hour | `Minute | `Month | `Second | `Week | `Year ] val make : int -> int -> int -> int -> int -> second -> t val lmake : year:int -> ?month:int -> ?day:int -> ?hour:int -> ?minute:int -> ?second:second -> unit -> t val create : Date.t -> Time.t -> t val now : unit -> t val from_jd : float -> t val from_mjd : float -> t val convert : t -> Time_Zone.t -> Time_Zone.t -> t val to_gmt : t -> t val from_gmt : t -> t val days_in_month : t -> int val day_of_week : t -> day val day_of_month : t -> int val day_of_year : t -> int val week : t -> int val month : t -> month val year : t -> int val to_jd : t -> float val to_mjd : t -> float val hour : t -> int val minute : t -> int val second : t -> second val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val is_leap_day : t -> bool val is_gregorian : t -> bool val is_julian : t -> bool val is_pm : t -> bool val is_am : t -> bool val to_unixtm : t -> Unix.tm val from_unixtm : Unix.tm -> t val to_unixfloat : t -> float val from_unixfloat : float -> t val from_date : Date.t -> t val to_date : t -> Date.t val to_time : t -> Time.t module Period : sig type +'a period constraint 'a = [< Period.date_field ] type t = Period.date_field period val empty : [< Period.date_field ] period val add : ([< Period.date_field > `Day `Week ] as 'a) period -> 'a period -> 'a period val sub : ([< Period.date_field > `Day `Week ] as 'a) period -> 'a period -> 'a period val opp : ([< Period.date_field > `Day `Week ] 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 -> int -> int -> second -> t val lmake : ?year:int -> ?month:int -> ?day:int -> ?hour:int -> ?minute:int -> ?second:second -> unit -> t val year : int -> [< Period.date_field > `Year ] period val month : int -> [< Period.date_field > `Month `Year ] period val week : int -> [< Period.date_field > `Day `Week ] period val day : int -> [< Period.date_field > `Day `Week ] period val hour : int -> [< Period.date_field > `Day `Week ] period val minute : int -> [< Period.date_field > `Day `Week ] period val second : second -> [< Period.date_field > `Day `Week ] period val from_date : ([< Period.date_field ] as 'a) Date.Period.period -> 'a period val from_time : ([< Period.date_field ] as 'a) Time.Period.period -> 'a period val to_date : ([< Date.field ] as 'a) period -> 'a Date.Period.period exception Not_computable val to_time : ([< Period.date_field ] as 'a) period -> 'a Time.Period.period val safe_to_time : ([< `Day | `Week ] as 'a) period -> 'a Time.Period.period val ymds : [< Period.date_field ] period -> int * int * int * second end val add : t -> [< Period.date_field ] Period.period -> t val sub : t -> t -> [< Period.date_field > `Day `Week ] Period.period val rem : t -> [< Period.date_field ] Period.period -> t val next : t -> field -> t val prev : t -> field -> t end end module Utils : sig module type Comparable = sig type t val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int end module Int : sig type t = int val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int end module Float : sig type t = float val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val set_precision : float -> unit val round : t -> int end end module Time_Zone : sig type t = CalendarLib.Time_Zone.t = UTC | Local | UTC_Plus of int val current : unit -> t val change : t -> unit val gap : t -> t -> int val from_gmt : unit -> int val to_gmt : unit -> int val is_dst : unit -> bool val hour_of_dst : unit -> int val on : ('a -> 'b) -> t -> 'a -> 'b end module Time : sig type t = CalendarLib.Time.t type field = [ `Hour | `Minute | `Second ] type second = int module Second : sig type t = second val from_int : int -> t val from_float : float -> t val to_int : t -> int val to_float : t -> float end val make : int -> int -> second -> t val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t val now : unit -> t val midnight : unit -> t val midday : unit -> t val convert : t -> Time_Zone.t -> Time_Zone.t -> t val from_gmt : t -> t val to_gmt : t -> t val normalize : t -> t * int val hour : t -> int val minute : t -> int val second : t -> second val to_seconds : t -> second val to_minutes : t -> float val to_hours : t -> float val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val is_pm : t -> bool val is_am : t -> bool val from_seconds : second -> t val from_minutes : float -> t val from_hours : float -> t module Period : sig type +'a period = 'a CalendarLib.Time.Period.period constraint 'a = [< Period.date_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 length : [< Period.date_field ] period -> second val mul : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val div : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val make : int -> int -> second -> [< Period.date_field ] period val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> [< Period.date_field ] period val hour : int -> [< Period.date_field ] period val minute : int -> [< Period.date_field ] period val second : second -> [< Period.date_field ] period val to_seconds : [< Period.date_field ] period -> second val to_minutes : [< Period.date_field ] period -> float val to_hours : [< Period.date_field ] period -> float end val add : t -> [< Period.date_field ] Period.period -> t val sub : t -> t -> [< Period.date_field ] Period.period val rem : t -> [< Period.date_field ] Period.period -> t val next : t -> field -> t val prev : t -> field -> t end module Ftime : sig type t = CalendarLib.Ftime.t type field = [ `Hour | `Minute | `Second ] type second = float module Second : sig type t = second val from_int : int -> t val from_float : float -> t val to_int : t -> int val to_float : t -> float end val make : int -> int -> second -> t val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t val now : unit -> t val midnight : unit -> t val midday : unit -> t val convert : t -> Time_Zone.t -> Time_Zone.t -> t val from_gmt : t -> t val to_gmt : t -> t val normalize : t -> t * int val hour : t -> int val minute : t -> int val second : t -> second val to_seconds : t -> second val to_minutes : t -> float val to_hours : t -> float val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val is_pm : t -> bool val is_am : t -> bool val from_seconds : second -> t val from_minutes : float -> t val from_hours : float -> t module Period : sig type +'a period = 'a CalendarLib.Ftime.Period.period constraint 'a = [< Period.date_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 length : [< Period.date_field ] period -> second val mul : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val div : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val make : int -> int -> second -> [< Period.date_field ] period val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> [< Period.date_field ] period val hour : int -> [< Period.date_field ] period val minute : int -> [< Period.date_field ] period val second : second -> [< Period.date_field ] period val to_seconds : [< Period.date_field ] period -> second val to_minutes : [< Period.date_field ] period -> float val to_hours : [< Period.date_field ] period -> float end val add : t -> [< Period.date_field ] Period.period -> t val sub : t -> t -> [< Period.date_field ] Period.period val rem : t -> [< Period.date_field ] Period.period -> t val next : t -> field -> t val prev : t -> field -> t end module Date : sig type field = Period.date_field type -'a date = 'a CalendarLib.Date.date constraint 'a = [< field ] type t = field date type day = CalendarLib.Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat type month = CalendarLib.Date.month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec type year = int exception Out_of_bounds exception Undefined val make : year -> int -> int -> t val lmake : year:year -> ?month:int -> ?day:int -> unit -> t val make_year : int -> [< `Year ] date val make_year_month : int -> int -> [< `Month | `Year ] date val today : unit -> t val from_jd : int -> t val from_mjd : int -> t val from_day_of_year : year -> int -> t val days_in_month : [< field > `Month `Year ] date -> int val day_of_week : t -> day val day_of_month : t -> int val day_of_year : t -> int val week : t -> int val month : [< field > `Month ] date -> month val year : [< field > `Year ] date -> year val to_jd : t -> int val to_mjd : t -> int val equal : [< field ] date -> [< field ] date -> bool val compare : [< field ] date -> [< field ] date -> int val hash : [< field ] date -> int val is_valid_date : year -> int -> int -> bool val is_leap_day : t -> bool val is_gregorian : t -> bool val is_julian : t -> bool val to_unixtm : t -> Unix.tm val from_unixtm : Unix.tm -> t val to_unixfloat : t -> float val from_unixfloat : float -> t val to_business : t -> year * int * day val from_business : year -> int -> day -> t val int_of_day : day -> int val day_of_int : int -> day val int_of_month : month -> int val month_of_int : int -> month module Period : sig type +'a p = 'a CalendarLib.Date.Period.p constraint 'a = [< 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 -> t val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t val year : int -> [< field > `Year ] period val month : int -> [< field > `Month `Year ] period val week : int -> [< field > `Day `Week ] period val day : int -> [< field > `Day `Week ] period exception Not_computable val nb_days : [< field ] period -> int val safe_nb_days : [< `Day | `Week ] period -> int val ymd : [< field ] period -> int * int * int end val add : ([< field ] as 'a) date -> 'a Period.period -> 'a date val sub : ([< field ] as 'a) date -> 'a date -> [< field > `Day `Week ] Period.period val rem : ([< field ] as 'a) date -> 'a Period.period -> 'a date val next : ([< field ] as 'a) date -> 'a -> 'a date val prev : ([< field ] as 'a) date -> 'a -> 'a date val is_leap_year : year -> bool val same_calendar : year -> year -> bool val days_in_year : ?month:month -> year -> int val weeks_in_year : year -> int val week_first_last : int -> year -> t * t val nth_weekday_of_month : year -> month -> day -> int -> t val century : year -> int val millenium : year -> int val solar_number : year -> int val indiction : year -> int val golden_number : year -> int val epact : year -> int val easter : year -> t val carnaval : year -> t val mardi_gras : year -> t val ash : year -> t val palm : year -> t val easter_friday : year -> t val easter_saturday : year -> t val easter_monday : year -> t val ascension : year -> t val withsunday : year -> t val withmonday : year -> t val corpus_christi : year -> t end module Calendar_builder : sig module Make : functor (D : Date_sig.S) -> functor (T : Time_sig.S) -> sig module Date : sig type field = Period.date_field type -'a date = 'a D.date constraint 'a = [< field ] type t = field date type day = D.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat type month = D.month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec type year = int exception Out_of_bounds exception Undefined val make : year -> int -> int -> t val lmake : year:year -> ?month:int -> ?day:int -> unit -> t val make_year : int -> [< `Year ] date val make_year_month : int -> int -> [< `Month | `Year ] date val today : unit -> t val from_jd : int -> t val from_mjd : int -> t val from_day_of_year : year -> int -> t val days_in_month : [< field > `Month `Year ] date -> int val day_of_week : t -> day val day_of_month : t -> int val day_of_year : t -> int val week : t -> int val month : [< field > `Month ] date -> month val year : [< field > `Year ] date -> year val to_jd : t -> int val to_mjd : t -> int val equal : [< field ] date -> [< field ] date -> bool val compare : [< field ] date -> [< field ] date -> int val hash : [< field ] date -> int val is_valid_date : year -> int -> int -> bool val is_leap_day : t -> bool val is_gregorian : t -> bool val is_julian : t -> bool val to_unixtm : t -> Unix.tm val from_unixtm : Unix.tm -> t val to_unixfloat : t -> float val from_unixfloat : float -> t val to_business : t -> year * int * day val from_business : year -> int -> day -> t val int_of_day : day -> int val day_of_int : int -> day val int_of_month : month -> int val month_of_int : int -> month module Period : sig type +'a p = 'a D.Period.p constraint 'a = [< 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 -> t val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t val year : int -> [< field > `Year ] period val month : int -> [< field > `Month `Year ] period val week : int -> [< field > `Day `Week ] period val day : int -> [< field > `Day `Week ] period exception Not_computable val nb_days : [< field ] period -> int val safe_nb_days : [< `Day | `Week ] period -> int val ymd : [< field ] period -> int * int * int end val add : ([< field ] as 'a) date -> 'a Period.period -> 'a date val sub : ([< field ] as 'a) date -> 'a date -> [< field > `Day `Week ] Period.period val rem : ([< field ] as 'a) date -> 'a Period.period -> 'a date val next : ([< field ] as 'a) date -> 'a -> 'a date val prev : ([< field ] as 'a) date -> 'a -> 'a date val is_leap_year : year -> bool val same_calendar : year -> year -> bool val days_in_year : ?month:month -> year -> int val weeks_in_year : year -> int val week_first_last : int -> year -> t * t val nth_weekday_of_month : year -> month -> day -> int -> t val century : year -> int val millenium : year -> int val solar_number : year -> int val indiction : year -> int val golden_number : year -> int val epact : year -> int val easter : year -> t val carnaval : year -> t val mardi_gras : year -> t val ash : year -> t val palm : year -> t val easter_friday : year -> t val easter_saturday : year -> t val easter_monday : year -> t val ascension : year -> t val withsunday : year -> t val withmonday : year -> t val corpus_christi : year -> t end module Time : sig type t = T.t type field = [ `Hour | `Minute | `Second ] type second = T.second module Second : sig type t = second val from_int : int -> t val from_float : float -> t val to_int : t -> int val to_float : t -> float end val make : int -> int -> second -> t val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t val now : unit -> t val midnight : unit -> t val midday : unit -> t val convert : t -> Time_Zone.t -> Time_Zone.t -> t val from_gmt : t -> t val to_gmt : t -> t val normalize : t -> t * int val hour : t -> int val minute : t -> int val second : t -> second val to_seconds : t -> second val to_minutes : t -> float val to_hours : t -> float val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val is_pm : t -> bool val is_am : t -> bool val from_seconds : second -> t val from_minutes : float -> t val from_hours : float -> t module Period : sig type +'a period = 'a T.Period.period constraint 'a = [< Period.date_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 length : [< Period.date_field ] period -> second val mul : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val div : ([< Period.date_field ] as 'a) period -> 'a period -> 'a period val make : int -> int -> second -> [< Period.date_field ] period val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> [< Period.date_field ] period val hour : int -> [< Period.date_field ] period val minute : int -> [< Period.date_field ] period val second : second -> [< Period.date_field ] period val to_seconds : [< Period.date_field ] period -> second val to_minutes : [< Period.date_field ] period -> float val to_hours : [< Period.date_field ] period -> float end val add : t -> [< Period.date_field ] Period.period -> t val sub : t -> t -> [< Period.date_field ] Period.period val rem : t -> [< Period.date_field ] Period.period -> t val next : t -> field -> t val prev : t -> field -> t end type t = CalendarLib.Calendar_builder.Make(D)(T).t type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat type month = Date.month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec type year = Date.year type second = Time.second type field = [ `Day | `Hour | `Minute | `Month | `Second | `Week | `Year ] val make : int -> int -> int -> int -> int -> second -> t val lmake : year:int -> ?month:int -> ?day:int -> ?hour:int -> ?minute:int -> ?second:second -> unit -> t val create : Date.t -> Time.t -> t val now : unit -> t val from_jd : float -> t val from_mjd : float -> t val convert : t -> Time_Zone.t -> Time_Zone.t -> t val to_gmt : t -> t val from_gmt : t -> t val days_in_month : t -> int val day_of_week : t -> day val day_of_month : t -> int val day_of_year : t -> int val week : t -> int val month : t -> month val year : t -> int val to_jd : t -> float val to_mjd : t -> float val hour : t -> int val minute : t -> int val second : t -> second val equal : t -> t -> bool val compare : t -> t -> int val hash : t -> int val is_leap_day : t -> bool val is_gregorian : t -> bool val is_julian : t -> bool val is_pm : t -> bool val is_am : t -> bool val to_unixtm : t -> Unix.tm val from_unixtm : Unix.tm -> t val to_unixfloat : t -> float val from_unixfloat : float -> t val from_date : Date.t -> t val to_date : t -> Date.t val to_time : t -> Time.t module Period : sig type +'a period = 'a CalendarLib.Calendar_builder.Make(D)(T).Period.period constraint 'a = [< Period.date_field ] type t = Period.date_field period val empty : [< Period.date_field ] period val add : ([< Period.date_field > `Day `Week ] as 'a) period -> 'a period -> 'a period val sub : ([< Period.date_field > `Day `Week ] as 'a) period -> 'a period -> 'a period val opp : ([< Period.date_field > `Day `Week ] 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 -> int -> int -> second -> t val lmake : ?year:int -> ?month:int -> ?day:int -> ?hour:int -> ?minute:int -> ?second:second -> unit -> t val year : int -> [< Period.date_field > `Year ] period val month : int -> [< Period.date_field > `Month `Year ] period val week : int -> [< Period.date_field > `Day `Week ] period val day : int -> [< Period.date_field > `Day `Week ] period val hour : int -> [< Period.date_field > `Day `Week ] period val minute : int -> [< Period.date_field > `Day `Week ] period val second : second -> [< Period.date_field > `Day `Week ] period val from_date : ([< Period.date_field ] as 'a) Date.Period.period -> 'a period val from_time : ([< Period.date_field ] as 'a) Time.Period.period -> 'a period val to_date : ([< Date.field ] as 'a) period -> 'a Date.Period.period exception Not_computable val to_time : ([< Period.date_field ] as 'a) period -> 'a Time.Period.period val safe_to_time : ([< `Day | `Week ] as 'a) period -> 'a Time.Period.period val ymds : [< Period.date_field ] period -> int * int * int * second end val add : t -> [< Period.date_field ] Period.period -> t val sub : t -> t -> [< Period.date_field > `Day `Week ] Period.period val rem : t -> [< Period.date_field ] Period.period -> t val next : t -> field -> t val prev : t -> field -> t end module Make_Precise : functor (D : Date_sig.S) -> functor (T : Time_sig.S) -> sig module Date : sig type field = Period.date_field type -'a date = 'a D.date constraint 'a = [< field ] type t = field date type day = D.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat type month = D.month = Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec type year = int exception Out_of_bounds exception Undefined val make : year -> int -> int -> t val lmake : year:year -> ?month:int -> ?day:int -> unit -> t val make_year : int -> [< `Year ] date val make_year_month : int -> int -> [< `Month | `Year ] date val today : unit -> t val from_jd : int -> t val from_mjd : int -> t val from_day_of_year : year -> int -> t val days_in_month : [< field > `Month `Year ] date -> int val day_of_week : t -> day val day_of_month : t -> int val day_of_year : t -> int val week : t -> int val month : [< field > `Month ] date -> month val year : [< field > `Year ] date -> year val to_jd : t -> int val to_mjd : t -> int val equal : [< field ] date -> [< field ] date -> bool val compare : [< field ] date -> [< field ] date -> int val hash : [< field ] date -> int val is_valid_date : year -> int -> int -> bool val is_leap_day : t -> bool val is_gregorian : t -> bool val is_julian : t -> bool val to_unixtm : t -> Unix.tm val from_unixtm : Unix.tm -> t val to_unixfloat : t -> float val from_unixfloat : float -> t val to_business : t -> year * int * day val from_business : year -> int -> day -> t val int_of_day : day -> int val day_of_int : int -> day val int_of_month : month -> int val month_of_int : int -> month module Period : sig type +'a p = 'a D.Period.p constraint 'a = [< 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 -> t val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t val year : int -> [< field > `Year ] period val month : int -> [< field > `Month `Year ] period val week : int -> [< field > `Day `Week ] period val day : int -> [< field > `Day `Week ] period exception Not_computable val nb_days : [< field ] period -> int val safe_nb_days : [< `Day | `Week ] period -> int val ymd : [< field ] period -> int * int * int end val add : ([< field ] as 'a) date -> 'a Period.period -> 'a date val sub : ([< field ] as 'a) date -> 'a date -> [< field > `Day `Week ] Period.period val rem : ([< field ] as 'a) date -> 'a Period.period -> 'a date val next : ([< field ] as 'a) date -> 'a -> 'a date val prev : ([< field ] as 'a) date -> 'a -> 'a date val is_leap_year : year -> bool val same_calendar : year -> year -> bool val days_in_year : ?month:month -> year -> int val weeks_in_year : year -> int val week_first_last : int -> year -> t * t val