CalendarLib.FcalendarCalendar implementation in which seconds are float.
This module uses float. Then results may be very unprecise, especially comparison of calendars which differ with few seconds. In this case, consider to use module Precise.
include Calendar_sig.S with module Date = Date and module Time = Ftimemodule Date = DateDate implementation used by this calendar.
module Time = FtimeTime 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