|
Packit |
eb839c |
NAME
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
Date::ISO8601 - the three ISO 8601 numerical calendars
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
DESCRIPTION
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
The international standard ISO 8601 "Data elements and interchange formats
|
|
Packit |
eb839c |
- Information interchange - Representation of dates and times" defines
|
|
Packit |
eb839c |
three distinct calendars by which days can be labelled. It also defines
|
|
Packit |
eb839c |
textual formats for the representation of dates in these calendars.
|
|
Packit |
eb839c |
This module provides functions to convert dates between these three
|
|
Packit |
eb839c |
calendars and Chronological Julian Day Numbers, which is a suitable
|
|
Packit |
eb839c |
format to do arithmetic with. It also supplies functions that describe
|
|
Packit |
eb839c |
the shape of these calendars, to assist in calendrical calculations.
|
|
Packit |
eb839c |
It also supplies functions to represent dates textually in the ISO
|
|
Packit |
eb839c |
8601 formats. ISO 8601 also covers time of day and time periods, but
|
|
Packit |
eb839c |
this module does nothing relating to those parts of the standard; this
|
|
Packit |
eb839c |
is only about labelling days.
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
The first ISO 8601 calendar divides time up into years, months, and days.
|
|
Packit |
eb839c |
It corresponds exactly to the Gregorian calendar, invented by Aloysius
|
|
Packit |
eb839c |
Lilius and promulgated by Pope Gregory XIII in the late sixteenth century,
|
|
Packit |
eb839c |
with AD (CE) year numbering. This calendar is applied to all time,
|
|
Packit |
eb839c |
not just to dates after its invention nor just to years 1 and later.
|
|
Packit |
eb839c |
Thus for ancient dates it is the proleptic Gregorian calendar with
|
|
Packit |
eb839c |
astronomical year numbering.
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
The second ISO 8601 calendar divides time up into the same years as
|
|
Packit |
eb839c |
the first, but divides the year directly into days, with no months.
|
|
Packit |
eb839c |
The standard calls this "ordinal dates". Ordinal dates are commonly
|
|
Packit |
eb839c |
referred to as "Julian dates", a mistake apparently deriving from true
|
|
Packit |
eb839c |
Julian Day Numbers, which divide time up solely into linearly counted
|
|
Packit |
eb839c |
days.
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
The third ISO 8601 calendar divides time up into years, weeks, and days.
|
|
Packit |
eb839c |
The years approximate the years of the first two calendars, so they stay
|
|
Packit |
eb839c |
in step in the long term, but the boundaries differ. This week-based
|
|
Packit |
eb839c |
calendar is sometimes called "the ISO calendar", apparently in the belief
|
|
Packit |
eb839c |
that ISO 8601 does not define any other. It is also referred to as
|
|
Packit |
eb839c |
"business dates", because it is most used by certain businesses to whom
|
|
Packit |
eb839c |
the week is the most important temporal cycle.
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
The Chronological Julian Day Number is an integral number labelling each
|
|
Packit |
eb839c |
day, where the day extends from midnight to midnight in whatever time zone
|
|
Packit |
eb839c |
is of interest. It is a linear count of days, where each day's number
|
|
Packit |
eb839c |
is one greater than the previous day's number. It is directly related to
|
|
Packit |
eb839c |
the Julian Date system: in the time zone of the prime meridian, the CJDN
|
|
Packit |
eb839c |
equals the JD at noon. By way of epoch, the day on which the Convention
|
|
Packit |
eb839c |
of the Metre was signed, which ISO 8601 defines to be 1875-05-20 (and
|
|
Packit |
eb839c |
1875-140 and 1875-W20-4), is CJDN 2406029.
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
This module places no limit on the range of dates to which it may be
|
|
Packit |
eb839c |
applied. All function arguments are permitted to be "Math::BigInt" or
|
|
Packit |
eb839c |
"Math::BigRat" objects in order to achieve arbitrary range. Native Perl
|
|
Packit |
eb839c |
integers are also permitted, as a convenience when the range of dates
|
|
Packit |
eb839c |
being handled is known to be sufficiently small.
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
INSTALLATION
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
perl Build.PL
|
|
Packit |
eb839c |
./Build
|
|
Packit |
eb839c |
./Build test
|
|
Packit |
eb839c |
./Build install
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
AUTHOR
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
Andrew Main (Zefram) <zefram@fysh.org>
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
COPYRIGHT
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
Copyright (C) 2006, 2007, 2009, 2011, 2017
|
|
Packit |
eb839c |
Andrew Main (Zefram) <zefram@fysh.org>
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
LICENSE
|
|
Packit |
eb839c |
|
|
Packit |
eb839c |
This module is free software; you can redistribute it and/or modify it
|
|
Packit |
eb839c |
under the same terms as Perl itself.
|