All of the values in the following examples represent narrative text that can be interpreted by a person or program as dates:
(@WALT :birthday 1901 (d date)) (@WALT :birthday December 1901 (d date)) (@WALT :birthday 1901-12-5 (d date)) (@WALT :birthday 12/5/1901 (d date)) (@WALT :birthday Tuesday (d date)) (@WALT :anniversary next year (d date)) (@US-DATE 11/1/68 (d date month day year)) (@EURO-DATE 1/11/68 (d date day month year)) (@BIGBANG :start -1.38e10 (d date year)) (@LASTWEEK last week (d date range)) (@NEXT-QTR next quarter (d date range)) (@TENANCY since December (d date range))
(@ROME The Roman Empire thrived between ~(@PERIOD 31 BCE and 476 AD (d date range)). :start (@PERIOD /w+ and/) (d date year) :end (@PERIOD /and w+/) (d date year)) ⇒ The Roman Empire thrived between ~31 BCE and 476 AD.
Examples 7-9 show how data types like
(d date) can include additional parameters to further explain their values. Examples 7 and 8 show how different narrative text can represent the same date. Example 9 shows a nontraditional value for a date, the start of the Big Bang 13.8 billion years ago. Neither the number nor its scientific notation would fit within the date fields of most storage representations and could not be sorted or filtered in those systems.
Data types like these can also help a viewer conform documents to a single internal representation or visible format, even if those documents use different formatting themselves. A reader consulting documents in both European and US date formats could sort, filter, or conform those documents using the viewer. Metric or US measurements could be viewed in the opposite system without the author providing both versions.
Custom date types can be used to represent non-Gregorian calendars (Mayan, Chinese, Japanese, Islamic, etc.) or to specify complex date expressions such as date ranges or offsets.