module Printer:Pretty printing.sig..end
In the following, an "event" is either a date or a time or a calendar.
This module implements three printers: one for each kind of events.
The three printers have the same signature:
they mainly implement a fprint : string -> formatter -> t -> unit function
and a from_fstring : string -> string -> t function.
The first one prints an event according to a format string
(see below for a description of such a format).
The second one converts a string to an event according to a format string.
A format string follows the unix date utility (with few modifications).
It is a string which contains two types of objects: plain characters and
conversion specifications. Those specifications are introduced by
a % character and their meanings are:
%%: a literal %%a: short day name (by using a short version of day_name)%A: day name (by using day_name)%b: short month name (by using a short version of month_name)%B: month name (by using month_name)%c: shortcut for %a %b %d %H:%M:%S %Y%d: day of month (01..31)%D: shortcut for %m/%d/%y%e: same as %_d%h: same as %b%H: hour (00..23)%I: hour (01..12)%i: shortcut for %Y-%m-%d: ISO-8601 notation%j: day of year (001..366)%k: same as %_H%l: same as %_I%m: month (01..12)%M: minute (00..59)%n: a newline (same as \n)%p: AM or PM%r: shortcut for %I:%M:%S %p%S: second (00..60)%t: a horizontal tab (same as \t)%T: shortcut for %H:%M:%S%V: week number of year (01..53)%w: day of week (1..7)%W: same as %V%y: last two digits of year (00..99)%Y: year (four digits)`%' and a numeric directive are recognized:'-' (hyphen): do not pad the field'_' (underscore): pad the field with spaces%D is 01/06/03;the date is %B, the %-dth is
the date is January, the 6th is matched by ;%c is Thu Sep 18 14:10:51 2003.
You can manage the string representations of days and months.
By default, the English names are used but you can change their by
setting the references day_name and month_name.
For example,
day_name := function Date.Mon -> "lundi" | Date.Tue -> "mardi" |
Date.Wed -> "mercredi" | Date.Thu -> "jeudi" | Date.Fri -> "vendredi" |
Date.Sat -> "samedi" | Date.Sun -> "dimanche"
sets the names of the days to the French names.
val day_name : (Date.day -> string) Pervasives.refval name_of_day : Date.day -> stringname_of_day d is equivalent to !day_name d.
Used by the specification %A.val short_name_of_day : Date.day -> stringshort_name_of_day d returns the 3 first characters of name_of_day d.
Used by the specification %a.val month_name : (Date.month -> string) Pervasives.refval name_of_month : Date.month -> stringname_of_month m is equivalent to !day_month m.
Used by the specification %B.val short_name_of_month : Date.month -> stringshort_name_of_month d returns the 3 first characters of
name_of_month d.
Used by the specification %b.module type S =sig..end
module DatePrinter:Swith type t = Date.t
module TimePrinter:Swith type t = Time.t
module CalendarPrinter:Swith type t = Calendar.t