module type S =sig..end
typefield =Period.date_field
type -[< field ] date
typet =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 |
typeyear =int
int.exception Out_of_bounds
exception Undefined
[October 5th, 1582; October 14th, 1582].val make : year -> int -> int -> tmake year month day makes the date year-month-day. A BC year y
corresponds to the year -(y+1).Out_of_bounds when a date is outside the Julian period.Undefined when a date belongs to [October 5th, 1582; October
14th, 1582].val lmake : year:year -> ?month:int -> ?day:int -> unit -> tmake.
The default value of month and day is 1.Out_of_bounds when a date is outside the Julian period.Undefined when a date belongs to [October 5th, 1582; October
14th, 1582].val make_year : int -> [< `Year ] datemake_year y makes a date only represented by its year y. The month
and the day of such a date are not relevant.val make_year_month : int -> int -> [< `Month | `Year ] datemake_year_month y m makes a date only represented by its year y and
its month m. The day of such a date is not relevant.val today : unit -> tTime_Zone.current ()).val from_jd : int -> tfrom_jd 0 returns the date 4713 BC-1-1.val from_mjd : int -> tfrom_mjd 0 returns the date 1858-11-17.val from_day_of_year : year -> int -> tfrom_day_of_year 2008 39 returns the date 2008-2-8.val days_in_month : [< field > `Month `Year ] date -> intdays_in_month (make 2003 6 26) returns 30.val day_of_week : t -> dayday_of_week (make 2003 6 26) returns Thu.val day_of_month : t -> intday_of_month (make 2003 6 26) returns 26.val day_of_year : t -> intday_of_year (make 2003 12 28) returns 362.day_of_year (make 2003 1 5) returns 5val week : t -> intweek (make 2003 12 29) returns 1.week (make 2003 12 28) returns 52.week (make 2000 1 2) returns 52.week (make 2000 1 3) returns 1.val month : [< field > `Month ] date -> monthmonth (make 2003 6 26) returns Jun.val year : [< field > `Year ] date -> yearyear (make 2003 6 26) returns 2003.val to_jd : t -> intto_jd (make (-4712) 1 1) returns 0.val to_mjd : t -> intto_mjd (make 1858 11 17) returns 0.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 -> boolis_valid_date 2008 2 30 returns falseis_valid_date 2008 2 8 returns trueval is_leap_day : t -> booltrue if a date is a leap day
(i.e. February, 24th of a leap year); false otherwise.val is_gregorian : t -> booltrue if a date belongs to the Gregorian calendar;
false otherwise.val is_julian : t -> booltrue iff a date belongs to the Julian calendar;
false otherwise.val to_unixtm : t -> Unix.tmUnix.tm type.
The field is_isdst is always false. The fields Unix.tm_sec,
Unix.tm_min and Unix.tm_hour are irrelevant.val from_unixtm : Unix.tm -> tto_unixtm. Assume the current time zone.val to_unixfloat : t -> floatto_unixfloat (make 1970 1 1)
returns 0.0. So such a float is convertible with those of the Unix
module. The fractional part of the result is always 0.val from_unixfloat : float -> tto_unixfloat. Ignore the fractional part of the argument.
Assume the current time zone.val to_business : t -> year * int * dayto_business (make 2003 12 29) returns 2004, 1, Mon.to_business (make 2003 12 28) returns 2003, 52, Sunto_business (make 2000 1 2) returns 1999, 52, Sunto_business (make 2000 1 3) returns 2000, 1, Monval from_business : year -> int -> day -> tto_business respecting ISO-8601.
Notice that business weeks at the beginning and end of the year
can sometimes have year numbers which don't match the real year.Invalid_argument if the date is bad.val int_of_day : day -> intval day_of_int : int -> dayint_of_day.Invalid_argument if the argument does not belong to 1; 7.val int_of_month : month -> intval month_of_int : int -> monthint_of_month.Invalid_argument if the argument does not belong to 1; 12.module Period:sig..end
val add : ([< field ] as 'a) date ->
'a Period.period -> 'a dateadd d p returns d + p.Out_of_bounds when the resulting date is outside the Julian
period.Undefined when the resulting date belongs to [October 5th,
1582; October 14th, 1582].add (make 2003 12 31) (Period.month 2) returns the date
2004-3-2 (following the coercion rule describes in the introduction).add (make 2003 12 31) (Period.month 1) returns the date
2004-1-31val sub : ([< field ] as 'a) date ->
'a date ->
[< field > `Day `Week ] Period.periodsub d1 d2 returns the period between d1 and d2.val precise_sub : ([< field ] as 'a) date ->
'a date -> Period.tprecise_sub d1 d2 returns the period between d1 and d2.
It is equivalent to sub, but:val rem : ([< field ] as 'a) date ->
'a Period.period -> 'a daterem d p is equivalent to add d (Period.opp p).Out_of_bounds when the resulting date is outside the Julian
period.Undefined when the resulting date belongs to [October 5th,
1582; October 14th, 1582].val next : ([< field ] as 'a) date -> 'a -> 'a datenext d f returns the date corresponding to the next specified field.Out_of_bounds when the resulting date is outside the Julian
period.Undefined when the resulting date belongs to [October 5th,
1582; October 14th, 1582].next (make 2003 12 31) `Month returns the date 2004-1-31
(i.e. one month later).val prev : ([< field ] as 'a) date -> 'a -> 'a dateprev d f returns the date corresponding to the previous specified
field.Out_of_bounds when the resulting date is outside the Julian
period.Undefined when the resulting date belongs to [October 5th,
1582; October 14th, 1582].prev (make 2003 12 31) `Year returns the date 2002-12-31
(i.e. one year ago).val is_leap_year : year -> booltrue if a year is a leap year; false otherwise.val same_calendar : year -> year -> booltrue if two years have the same calendar; false
otherwise.val days_in_year : ?month:month -> year -> int
days_in_year ~month y returns the number of days in the year y up
to the end of the given month. Thus days_in_year ~month:Dec y is the
same as days_in_year y.
val weeks_in_year : year -> intval week_first_last : int -> year -> t * tval nth_weekday_of_month : year -> month -> day -> int -> tnth_weekday_of_month y m d n returns the n-th day d in the month
m of the year y (for instance the 3rd Thursday of the month).val century : year -> intcentury 2001 returns 21.century 2000 returns 20val millenium : year -> intmillenium 2001 returns 3.millenium 2000 returns 2val solar_number : year -> int
In the Julian calendar there is a one-to-one relationship between the
Solar number and the day on which a particular date falls.
val indiction : year -> intThe Indiction was used in the middle ages to specify the position of a year in a 15 year taxation cycle. It was introduced by emperor Constantine the Great on 1 September 312 and ceased to be used in 1806.
The Indiction has no astronomical significance.
val golden_number : year -> int
Considering that the relationship between the moon's phases and the
days of the year repeats itself every 19 years, it is natural to
associate a number between 1 and 19 with each year.
This number is the so-called Golden number.
val epact : year -> int
The Epact is a measure of the age of the moon (i.e. the number of days
that have passed since an "official" new moon) on a particular date.
val easter : year -> t
In the Christian world, Easter (and the days immediately preceding it)
is the celebration of the death and resurrection of Jesus in
(approximately) AD 30.
: year -> tcarnaval y is easter y - 48.val mardi_gras : year -> tmardi_gras y is easter y - 47.val ash : year -> tash y is easter y - 46.val palm : year -> tpalm y is easter y - 7.val easter_friday : year -> teaster_friday y is easter y - 2.val easter_saturday : year -> teaster_saturday y is easter y - 1.val easter_monday : year -> teaster_monday y is easter y + 1.val ascension : year -> tascension y is easter y + 39.val withsunday : year -> twithsunday y is easter y + 49.val withmonday : year -> twithmonday y is easter y + 50.val corpus_christi : year -> tcorpus_christi y is easter + 60.