Calendar.PreciseMore precise implementation of calendar in which seconds are integer.
module Date = DateDate implementation used by this calendar.
module Time = TimeTime implementation used by this calendar.
type month = Date.month = type year = Date.yearYear as an int
type second = Time.secondThe different fields of a calendar.
make year month day hour minute second makes the calendar "year-month-day; hour-minute-second".
val lmake :
year:int ->
?month:int ->
?day:int ->
?hour:int ->
?minute:int ->
?second:second ->
unit ->
tLabelled version of make. The default value of month and day (resp. of hour, minute and second) is 1 (resp. 0).
val now : unit -> tnow () returns the current date and time (in the current time zone).
val from_jd : float -> tReturn the Julian day. More precise than Date.from_jd: the fractional part represents the time.
val from_mjd : float -> tReturn the Modified Julian day. It is Julian day - 2 400 000.5 (more precise than Date.from_mjd).
Those functions have the same behaviour as those defined in Time_sig.S.
val convert : t -> Time_Zone.t -> Time_Zone.t -> tThose functions have the same behavious as those defined in Date_sig.S.
val days_in_month : t -> intval day_of_month : t -> intval day_of_year : t -> intval week : t -> intval year : t -> intto_jd and to_mjd are more precise than Date_sig.S.to_jd and Date_sig.S.to_mjd.
val to_jd : t -> floatval to_mjd : t -> floatThose functions have the same behavious as those defined in Time_sig.S.
val hour : t -> intval minute : t -> intval hash : t -> intHash function for calendars.
Those functions have the same behavious as those defined in Date_sig.S.
val is_leap_day : t -> boolval is_gregorian : t -> boolval is_julian : t -> boolThose functions have the same behavious as those defined in Time_sig.S.
val is_pm : t -> boolval is_am : t -> boolval to_unixtm : t -> Unix.tmConvert a calendar into the unix.tm type. The field isdst is always false. More precise than Date_sig.S.to_unixtm.
val from_unixtm : Unix.tm -> tInverse of to_unixtm. Assumes the current time zone. So, The following invariant holds: hour (from_unixtm u) = u.Unix.tm_hour.
val to_unixfloat : t -> floatConvert a calendar to a float such than to_unixfloat (make 1970 1 1 0 0 0) returns 0.0 at UTC. So such a float is convertible with those of the module Unix. More precise than Date_sig.S.to_unixfloat.
val from_unixfloat : float -> tInverse of to_unixfloat. Assumes the current time zone. So, the following invariant holds: hour (from_unixfloat u) = (Unix.gmtime u).Unix.tm_hour.
Convert a date to a calendar. The time is midnight in the current time zone.
module Period : sig ... endA period is the number of seconds between two calendars.
Those functions have the same behavious as those defined in Date_sig.S.
val add : t -> 'a Period.period -> tval sub : t -> t -> [> `Week | `Day ] Period.periodval rem : t -> 'a Period.period -> t