module Precise:Calendar_sig.Swith module Date = Date and module Time = Time
module Date:Date_sig.S
module Time:Time_sig.S
type t
typeday =Date.day=
| |
Sun |
|||
| |
Mon |
|||
| |
Tue |
|||
| |
Wed |
|||
| |
Thu |
|||
| |
Fri |
|||
| |
Sat |
(* |
Days of the week.
| *) |
typemonth =Date.month=
| |
Jan |
|||
| |
Feb |
|||
| |
Mar |
|||
| |
Apr |
|||
| |
May |
|||
| |
Jun |
|||
| |
Jul |
|||
| |
Aug |
|||
| |
Sep |
|||
| |
Oct |
|||
| |
Nov |
|||
| |
Dec |
(* |
Months of the year.
| *) |
typeyear =Date.year
typesecond =Time.second
typefield =[ `Day | `Hour | `Minute | `Month | `Second | `Week | `Year ]
val make : int -> int -> int -> int -> int -> second -> tmake year month day hour minute second makes the calendar
"year-month-day; hour-minute-second".D.Out_of_bounds when a date is outside the Julian period.D.Undefined when a date belongs to [October 5th, 1582; October
14th, 1582].val lmake : year:int ->
?month:int ->
?day:int ->
?hour:int ->
?minute:int -> ?second:second -> unit -> tmake.
The default value of month and day (resp. of hour, minute
and second) is 1 (resp. 0).D.Out_of_bounds when a date is outside the Julian period.D.Undefined when a date belongs to [October 5th, 1582; October
14th, 1582].val create : Date.t -> Time.t -> tcreate d t creates a calendar from the given date and time.val now : unit -> tnow () returns the current date and time (in the current time
zone).val from_jd : float -> tDate.from_jd: the fractional part represents the
time.val from_mjd : float -> tJulian day - 2 400 000.5 (more precise than Date.from_mjd).Time_sig.S.val convert : t -> Time_Zone.t -> Time_Zone.t -> tval to_gmt : t -> tval from_gmt : t -> tDate_sig.S.val days_in_month : t -> intval day_of_week : t -> dayval day_of_month : t -> intval day_of_year : t -> intval week : t -> intval month : t -> monthval 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 -> float
val to_mjd : t -> floatTime_sig.S.val hour : t -> intval minute : t -> intval second : t -> secondval equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
Date_sig.S.val is_leap_day : t -> boolval is_gregorian : t -> boolval is_julian : t -> boolTime_sig.S.val is_pm : t -> boolval is_am : t -> boolval to_unixtm : t -> Unix.tmunix.tm type.
The field isdst is always false. More precise than
Date_sig.S.to_unixtm.val from_unixtm : Unix.tm -> tto_unixtm. Assumes the current time zone.
So, The following invariant holds:
hour (from_unixtm u) = u.Unix.tm_hour.val to_unixfloat : t -> floatto_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 -> tto_unixfloat. Assumes the current time zone.
So, the following invariant holds:
hour (from_unixfloat u) = (Unix.gmtime u).Unix.tm_hour.val from_date : Date.t -> tval to_date : t -> Date.tval to_time : t -> Time.tmodule Period:sig..end
Date_sig.S.val add : t ->
[< Period.date_field ] Period.period -> tval sub : t ->
t ->
[< Period.date_field > `Day `Week ] Period.periodval precise_sub : t -> t -> Period.t
val rem : t ->
[< Period.date_field ] Period.period -> tval next : t -> field -> tval prev : t -> field -> t