SRFI-19 Date
A date object represents a date in the Gregorian calendar and a time of day on that date in some timezone.
The fields are year, month, day, hour, minute, second, nanoseconds and timezone. A date object is immutable, its fields can be read but they cannot be modified once the object is created.
Historically, the Gregorian calendar was only used from the latter part of the year 1582 onwards, and not until even later in many countries. Prior to that most countries used the Julian calendar. SRFI-19 does not deal with the Julian calendar at all, and so does not reflect this historical calendar reform. Instead it projects the Gregorian calendar back proleptically as far as necessary. When dealing with historical data, especially prior to the British Empire’s adoption of the Gregorian calendar in 1752, one should be mindful of which calendar is used in each context, and apply non-SRFI-19 facilities to convert where necessary.
Function: date? obj
Return #t if obj is a date object, or #f if not.
Function: make-date nsecs seconds minutes hours day month year zone-offset
Create a new date object.
Function: date-nanosecond date
Nanoseconds, 0 to 999999999.
Function: date-second date
Seconds, 0 to 59, or 60 for a leap second. 60 is never seen when working entirely within UTC, it’s only when converting to or from TAI.
Function: date-minute date
Minutes, 0 to 59.
Function: date-hour date
Hour, 0 to 23.
Function: date-day date
Day of the month, 1 to 31 (or less, according to the month).
Function: date-month date
Month, 1 to 12.
Function: date-year date
Year, eg. 2003. Dates B.C. are negative, eg. -46 is 46 B.C. There is no year 0, year -1 is followed by year 1.
Function: date-zone-offset date
Time zone, an integer number of seconds east of Greenwich.
Function: date-year-day date
Day of the year, starting from 1 for 1st January.
Function: date-week-day date
Day of the week, starting from 0 for Sunday.
Function: date-week-number date dstartw
Week of the year, ignoring a first partial week. dstartw is the day of the week which is taken to start a week, 0 for Sunday, 1 for Monday, etc.
Function: current-date [tz-offset]
Return a date object representing the current date/time, in UTC offset by tz-offset. tz-offset is seconds east of Greenwich and defaults to the local timezone.
Function: current-julian-day
Return the current Julian Day.
Function: current-modified-julian-day
Return the current Modified Julian Day.