Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Os_date

module Os_date : sig..end

type local_calendar

Type representing a local calendar.

val to_utc : local_calendar -> CalendarLib.Calendar.t

Convert a local calendar to a UTC calendar

val to_local : CalendarLib.Calendar.t -> local_calendar

Convert any type of calendar to a local calendar.

val now : unit -> local_calendar

now () returns the current date as a local_calendar value.

val disable_auto_init : unit -> unit

Disable auto-initialization

val user_tz : unit -> string

user_tz () returns current user's timezone.

val to_local_time : local_calendar -> CalendarLib.Time.t

Convert a local_calendar value to a CalendarLib.Time.t value.

val to_local_date : local_calendar -> CalendarLib.Date.t

Convert a local_calendar value to a CalendarLib.Date.t value.

val local_to_calendar : local_calendar -> CalendarLib.Calendar.t

Convert a local_calendar value to a CalendarLib.Calendar.t value.

val local_from_calendar : CalendarLib.Calendar.t -> local_calendar

Convert a CalendarLib.Calendar.t value to a local_calendar value.

val unknown_timezone : unit -> bool

unknown_timezone () returns true if the timezone is unknown. Else returns false.

val smart_time : ?now:local_calendar -> local_calendar -> string

smart_time ~now date returns a smart description of local_date comparing to now (default value of now is the current time when the function is called). It does the same job than Os_date.smart_date but « at %hour » is added at the end where %hour is computed from Os_date.smart_hours_minutes.

val smart_date : ?now:local_calendar -> local_calendar -> string

smart_date ~now local_date returns a smart description of local_date comparing to now (default value of now is the current time when the function is called). Smart means

  • if local_date is the day before now, "Yesterday" is returned.
  • if local_date is the same day than now, "Today" is returned.
  • if local_date is the day after now, "Tomorrow" is returned.
  • if now and local_date has the same year, it returns the date in the format: "%A %B %d".
  • else the year is added at the end in the same format than the previous case.
val smart_hours_minutes : local_calendar -> string

smart_hours_minutes date returns the time in the format "%I:%M%P". If the timezone is unknown, GMT is added.

val smart_interval : 
  ?now:local_calendar ->
  local_calendar -> local_calendar -> string

smart_interval ?now start_date end_date returns a smart description of start_date comparing to end_date of the year, month, day, hour and minutes (compared to Os_date.smart_date_interval, information about the hour and minutes is given).

The year is not used if start_date and end_date or if start_date and now have the same year.

The final output is the concatenation of smart_start_date and smart_end_date with a dash between them.

smart_start_date and smart_end_date in in the format "%B %d, %Y" if year is needed and "%B %d" if not.

val smart_date_interval : 
  ?now:local_calendar ->
  local_calendar -> local_calendar -> string

smart_date_interval ?now start_date end_date returns a smart description of start_date comparing to end_date of the year, month and day (compared to Os_date.smart_interval, no information about the hour and minutes is given).

The year is not used if start_date and end_date or if start_date and now have the same year.

The final output is the concatenation of smart_start_date and smart_end_date with a dash between them. smart_start_date (resp. smart_end_date) is start_date (resp. end_date) in the format "%B %d, %Y, %I:%M%P" if year is needed and "%B %d, %I:%M%P" if not.