package calendar
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=8c7207407fc6b4d0bd3d05ed3c13f91a
sha512=cf8a5cfbfb8879da7bcacf765d5461523cbc4f0c13133dfb2f311b051ed95b5f72815af5ca2836294a793d9b57bfc4cc1abbb8b54e17954cb4ecc99e1743bdc3
doc/calendar/CalendarLib/Printer/index.html
Module CalendarLib.PrinterSource
Pretty printing and parsing from string. In the following, an "event" is either a date or a time or a calendar.
This module implements different 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 utility 'date' (with few modifications). It is a string which contains two types of objects: plain characters and conversion specifiers. Those specifiers are introduced by a % character and their meanings are:
%%: a literal%%a: short day name (by using a short version ofday_name)%A: day name (by usingday_name)%b: short month name (by using a short version ofmonth_name)%B: month name (by usingmonth_name)%c: shortcut for%a %b %d %H:%M:%S %Y%C: century: as %Y without the two last digits (since version 2.01)%d: day of month (01..31)%D: shortcut for%m/%d/%y%e: same as%_d%F: shortcut for%Y-%m-%d: ISO-8601 notation (since version 2.01)%h: same as%b%H: hour (00..23)%I: hour (01..12)%i: same as%F; deprecated since 2.01%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%P: am or pm (same as %p in lowercase) (since version 2.01)%r: shortcut for%I:%M:%S %p%R: shortcut for%H:%M(since version 2.01)%s: number of seconds since 1970/1/1 (since version 2.01)%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)%z: time zone in the form +hhmm (e.g. -0400) (since version 2.01)%:z: time zone in the form +hh:mm (e.g. -04:00) (since version 2.01)%::z: time zone in the form +hh:mm:ss (e.g. -04:00:00) (since version 2.01)%:::z: time zone in the form +hh (e.g. -04) (since version 2.01)
By default, date pads numeric fields with zeroes. Two special modifiers between `%' and a numeric directive are recognized:
'-' (hyphen): do not pad the field'_' (underscore): pad the field with spaces'0' (zero): pad the field with zeroes (default) (since version 2.01)'^': use uppercase if possible (since version 2.01) Padding is only available for printers, not for parsers.
@example a possible output of %D is 01/06/03 @example a possible output of the date is %B, the %-dth is the date is January, the 6th is matched by ; @example a possible output of %c is Thu Sep 18 14:10:51 2003.
Internationalization
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.
@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.
name_of_day d is equivalent to !day_name d. Used by the specifier %A.
short_name_of_day d returns the 3 first characters of name_of_day d. Used by the specifier %a.
String representation of a month.
name_of_month m is equivalent to !day_month m. Used by the specifier %B.
short_name_of_month d returns the 3 first characters of name_of_month d. Used by the specifier %b.
Set the regular expression used to recognize words in from_fstring. Default is [a-zA-Z]*.
Printers (including parsers from string)
Printers also contain parsers which allow to build events from strings.
Date printer. Specifiers which use time functionalities are not available on this printer. Default format is %i.
Time printer. Specifiers which use date functionalities are not available on this printer. Default format is %T.
Ftime printer. Seconds are rounded to integers before pretty printing. Specifiers which use date functionalities are not available on this printer. Default format is %T.
Precise Calendar printer. Default format is %i %T.
Calendar printer. Default format is %i %T.
Precise Fcalendar printer. Seconds are rounded to integers before pretty printing. Default format is %i %T.
Fcalendar printer. Seconds are rounded to integers before pretty printing. Default format is %i %T.