library(date)library(date) is a time-stamp package.
date(Year, Month, Day).
time(Hour, Minute, Second).
date(Year, Month, Day, Hour, Minute, Second).
The parameter ranges are
| Year | year-1900 | (e.g. 1987 -> 87)
|
| Month | 0..11 | (e.g. January -> 0, September -> 8)
|
| Day | 1..31 | (e.g. 27 -> 27)
|
| Hour | 0..23 | (e.g. midnight -> 0, noon -> 12)
|
| Minute | 0..59
| |
| Second | 0..59
|
These parameter ranges are compatible with the library function
localtime(3). Note that the range for months is not what you might expect.
The predicates provided are:
now(?When)
date(-DateNow)
date(+When, -DateThen)
time(-TimeNow)
time(+When, -TimeThen)
datime(-DatimeNow)
datime(+When, -DatimeThen)
datime(?Datime, ?Date, ?Time)
date_and_time(-DateNow, -TimeNow)
date_and_time(+When, -DateThen, -TimeThen)
portray_date(+TimeStamp)
time_stamp(+Format, -TimeStamp)
time_stamp(+When, +Format, -TimeStamp)
For example,
| ?- date(X), portray_date(X).
11-Jan-90
X = date(90,0,11)
Note that if you want both the current date and time, you should call either
datime/1 or date_and_time/2. It is an error to obtain the date and time in
separate calls, because midnight could intervene and put you nearly 24 hours
out.
Dates and datimes are also returned by directory_property/3
and file_property/3 (see library(directory)). All these
records can be compared using term comparison.
The predicates time_stamp/[2,3] provide a way of creating a time-stamp atom
using a special kind of format string. For example,
| ?- time_stamp('%W, %d %M %y',Date).
Date = 'Thursday, 11 January 1990'
The details of the format strings are explained in a comment in the sources.
Please note that, in the interests of internationalization, time_stamp/[2,3]
are likely to be superseded in a future release by something based on the ANSI
C operation strftime(3). The other predicates in this package will not
change at that time.