|
Calendar Converter
Other research
resources on our site >>
This page
allows you to interconvert dates in a variety of calendars, both civil and
computer-related. All calculations are done in JavaScript executed in your
own browser; complete source code is embedded in or linked to this page To use the page, your browser must support JavaScript and you must not
have disabled execution of that language. Let's see...
If the box above says "Your browser supports JavaScript", you're
in business; simply enter a date in any of the boxes below and press the
"Calculate" button to show that date in all of the other calendars.
The Gregorian calendar was
proclaimed
by Pope Gregory XIII and took effect in most Catholic states in 1582, in which
October 4, 1582 of the Julian calendar was followed by October 15 in the new
calendar, correcting for the accumulated discrepancy between the Julian calendar
and the equinox as of that date. When comparing historical dates, it's important
to note that the Gregorian calendar, used universally today in Western countries
and in international commerce, was adopted at different times by different
countries. Britain and her colonies (including what is now the United States),
did not switch to the Gregorian calendar until 1752, when Wednesday 2nd
September in the Julian calendar dawned as Thursday the 14th in the Gregorian.
The Gregorian calendar is a minor correction to the Julian. In
the Julian calendar every fourth year is a leap year in which February has 29,
not 28 days, but in the Gregorian, years divisible by 100 are
not leap years unless they are also divisible by 400. How prescient was
Pope Gregory! Whatever the problems of Y2K, they won't include sloppy
programming which assumes every year divisible by 4 is a leap year since 2000,
unlike the previous and subsequent years divisible by 100, is a leap
year. As in the Julian calendar, days are considered to begin at midnight.
The average length of a year in the Gregorian calendar is
365.2425 days compared to the actual solar tropical year (time from equinox to
equinox) of 365.24219878 days, so the calendar accumulates one day of error with
respect to the solar year about every 3300 years. As a purely solar calendar, no
attempt is made to synchronise the start of months to the phases of the Moon.
While one can't properly speak of "Gregorian dates" prior to the
adoption of the calendar in 1582, the calendar can be extrapolated to prior
dates. In doing so, this implementation uses the convention that the year prior
to year 1 is year 0. This differs from the Julian calendar in which there is no
year 0--the year before year 1 in the Julian calendar is year -1. The date
December 30th, 0 in the Gregorian calendar corresponds to January 1st, 1 in the
Julian calendar.
A slight modification of the Gregorian calendar would make it
even more precise. If you add the additional rule that years evenly divisible by
4000 are not leap years, you obtain an average solar year of 365.24225
days per year which, compared to the actual mean year of 365.24219878, is
equivalent to an error of one day over a period of about 19,500 years; this is
comparable to errors due to tidal braking of the rotation of the Earth.
Astronomers, unlike historians, frequently need to do arithmetic
with dates. For example: a double star goes into eclipse every 1583.6 days and
its last mid-eclipse was measured to be on October 17, 2003 at 21:17 UTC. When
is the next? Well, you could get out your calendar and count days, but it's far
easier to convert all the quantities in question to Julian day numbers and
simply add or subtract. Julian days simply enumerate the days and fraction which
have elapsed since the start of the
Julian era, which is defined as beginning at noon on Monday, 1st
January of year 4713 B.C.E. in the Julian calendar. This date is defined in
terms of a cycle of years, but has the additional advantage that all known
historical astronomical observations bear positive Julian day numbers, and
periods can be determined and events extrapolated by simple addition and
subtraction. Julian dates are a tad eccentric in starting at noon, but then so
are astronomers (and systems programmers!)--when you've become accustomed to
rising after the "crack of noon" and doing most of your work when the Sun is
down, you appreciate recording your results in a calendar where the date doesn't
change in the middle of your workday. But even the Julian day convention bears
witness to the eurocentrism of 19th century astronomy--noon at Greenwich is
midnight on the other side of the world. But the Julian day notation is so
deeply embedded in astronomy that it is unlikely to be displaced at any time in
the foreseeable future. It is an ideal system for storing dates in computer
programs, free of cultural bias and discontinuities at various dates, and can be
readily transformed into other calendar systems, as the source code for this
page illustrates. Use Julian days and fractions (stored in 64 bit or longer
floating point numbers) in your programs, and be ready for Y10K, Y100K, and
Y1MM!
While any event in recorded human history can be written as a
positive Julian day number, when working with contemporary events all those
digits can be cumbersome. A Modified Julian Day (MJD) is created by
subtracting 2400000.5 from a Julian day number, and thus represents the number
of days elapsed since midnight (00:00) Universal Time on November 17, 1858.
Modified Julian Days are widely used to specify the epoch in tables of orbital
elements of artificial Earth satellites. Since no such objects existed prior to
October 4, 1957, all satellite-related MJDs are positive.
The Julian calendar was proclaimed by Julius Cćsar in 46 B.C. and
underwent several modifications before reaching its final form in 8 C.E. The
Julian calendar differs from the Gregorian only in the determination of leap
years, lacking the correction for years divisible by 100 and 400 in the
Gregorian calendar. In the Julian calendar, any positive year is a leap year if
divisible by 4. (Negative years are leap years if the absolute value divided by
4 yields a remainder of 1.) Days are considered to begin at midnight.
In the Julian calendar the average year has a length of 365.25
days. compared to the actual solar tropical year of 365.24219878 days. The
calendar thus accumulates one day of error with respect to the solar year every
128 years. Being a purely solar calendar, no attempt is made to synchronise the
start of months to the phases of the Moon.
Hebrew
Calendar:
The Hebrew (or Jewish) calendar attempts to simultaneously
maintain alignment between the months and the seasons and synchronise months
with the Moon--it is thus deemed a "luni-solar calendar". In addition,
there are constraints on which days of the week on which a year can begin and to
shift otherwise required extra days to prior years to keep the length of the
year within the prescribed bounds. This isn't easy, and the computations
required are correspondingly intricate.
Years are classified as common (normal) or
embolismic (leap) years which occur in a 19 year cycle in years 3, 6,
8, 11, 14, 17, and 19. In an embolismic (leap) year, an extra month of
29 days, "Veadar" or "Adar II", is added to the end of the year after the month
"Adar", which is designated "Adar I" in such years. Further, years may be
deficient,
regular, or complete, having respectively 353, 354, or 355
days in a common year and 383, 384, or 385 days in embolismic years. Days are
defined as beginning at sunset, and the calendar begins at sunset the night
before Monday, October 7, 3761 B.C.E. in the Julian calendar, or Julian day
347995.5. Days are numbered with Sunday as day 1, through Saturday: day 7.
The average length of a month is 29.530594 days, extremely close
to the mean synodic month (time from new Moon to next new Moon) of
29.530588 days. Such is the accuracy that more than 13,800 years elapse before a
single day discrepancy between the calendar's average reckoning of the start of
months and the mean time of the new Moon. Alignment with the solar year is
better than the Julian calendar, but inferior to the Gregorian. The average
length of a year is 365.2468 days compared to the actual solar tropical year
(time from equinox to equinox) of 365.24219 days, so the calendar accumulates
one day of error with respect to the solar year every 216 years.
The Islamic calendar is purely lunar and consists of twelve
alternating months of 30 and 29 days, with the final 29 day month extended to 30
days during leap years. Leap years follow a 30 year cycle and occur in years 1,
5, 7, 10, 13, 16, 18, 21, 24, 26, and 29. Days are considered to begin at
sunset. The calendar begins on Friday, July 16th, 622 C.E. in the Julian
calendar, Julian day 1948439.5, the day of Muhammad's flight from Mecca to
Medina, with sunset on the preceding day reckoned as the first day of the first
month of year 1 A.H.--"Anno Hegirć"--the Arabic word for "separate" or
"go away". Weeks begin on Sunday, and the names for the days are just their
numbers: Sunday is the first day and Saturday the seventh.
Each cycle of 30 years thus contains 19 normal years of 354 days
and 11 leap years of 355, so the average length of a year is therefore ((19 ×
354) + (11 × 355)) / 30 = 354.365... days, with a mean length of month of 1/12
this figure, or 29.53055... days, which closely approximates the mean
synodic month (time from new Moon to next new Moon) of 29.530588 days, with
the calendar only slipping one day with respect to the Moon every 2525 years.
Since the calendar is fixed to the Moon, not the solar year, the months shift
with respect to the seasons, with each month beginning about 11 days earlier in
each successive solar year.
The calendar presented here is the most commonly used civil
calendar in the Islamic world; for religious purposes months are defined to
start with the first observation of the crescent of the new Moon.
Persian Calendar:
The modern Persian calendar was adopted in 1925, supplanting
(while retaining the month names of) a traditional calendar dating from the
eleventh century. The calendar consists of 12 months, the first six of which are
31 days, the next five 30 days, and the final month 29 days in a normal year and
30 days in a leap year.
As one of the few calendars designed in the era of accurate
positional astronomy, the Persian calendar uses a very complex leap year
structure which makes it the most accurate solar calendar in use today. Years
are grouped into cycles
which begin with four normal years after which every fourth subsequent year in
the cycle is a leap year. Cycles are grouped into grand cycles of
either 128 years (composed of cycles of 29, 33, 33, and 33 years) or 132 years,
containing cycles of of 29, 33, 33, and 37 years. A great grand cycle
is composed of 21 consecutive 128 year grand cycles and a final 132 grand cycle,
for a total of 2820 years. The pattern of normal and leap years which began in
1925 will not repeat until the year 4745!
Each 2820 year great grand cycle contains 2137 normal years of
365 days and 683 leap years of 366 days, with the average year length over the
great grand cycle of 365.24219852. So close is this to the actual solar tropical
year of 365.24219878 days that the Persian calendar accumulates an error of one
day only every 3.8 million years. As a purely solar calendar, months are not
synchronised with the phases of the Moon.
Mayan Calendars:
The Mayans employed three calendars, all organised as hierarchies
of cycles of days of various lengths. The Long Count was the principal
calendar for historical purposes, the Haab
was used as the civil calendar, while the Tzolkin
was the religious calendar. All of the Mayan calendars are based on serial
counting of days without means for synchronising the calendar to the Sun or
Moon, although the Long Count and Haab calendars contain cycles of 360 and 365
days, respectively, which are roughly comparable to the solar year. Based purely
on counting days, the Long Count more closely resembles the Julian Day system
and contemporary computer representations of date and time than other calendars
devised in antiquity. Also distinctly modern in appearance is that days and
cycles count from zero, not one as in most other calendars, which simplifies the
computation of dates, and that numbers as opposed to names were used for all of
the cycles.
| Cycle
| Composed of
| Total Days
| Years (approx.)
|
| kin
|
| 1
|
|
| uinal
| 20 kin
| 20
|
|
| tun
| 18 uinal
| 360
| 0.986
|
| katun
| 20 tun
| 7200
| 19.7
|
| baktun
| 20 katun
| 144,000
| 394.3
|
| pictun
| 20 baktun
| 2,880,000
| 7,885
|
| calabtun
| 20 piktun
| 57,600,000
| 157,704
|
| kinchiltun
| 20 calabtun
| 1,152,000,000
| 3,154,071
|
| alautun
| 20 kinchiltun
| 23,040,000,000
| 63,081,429
|
The Long Count calendar is organised into the hierarchy of cycles
shown at the right. Each of the cycles is composed of 20 of the next shorter
cycle with the exception of the tun, which consists of 18 uinal
of 20 days each. This results in a tun of 360 days, which maintains
approximate alignment with the solar year over modest intervals--the calendar
comes undone from the Sun 5 days every tun.
The Mayans believed at at the conclusion of each
pictun cycle of about 7,885 years the universe is destroyed and
re-created. Those with apocalyptic inclinations will be relieved to observe that
the present cycle will not end until Columbus Day, October 12, 4772 in the
Gregorian calendar. Speaking of apocalyptic events, it's amusing to observe that
the longest of the cycles in the Mayan calendar, alautun, about 63
million years, is comparable to the 65 million years since the impact which
brought down the curtain on the dinosaurs--an impact which occurred near the
Yucatan peninsula where, almost an alautun later, the Mayan
civilisation flourished. If the universe is going to be destroyed and the end of
the current pictun, there's no point in writing dates using the longer
cycles, so we dispense with them here.
Dates in the Long Count calendar are written, by convention, as:
baktun . katun . tun . uinal . kin
and thus resemble present-day Internet IP addresses!
For civil purposes the Mayans used the Haab
calendar in which the year was divided into 18 named periods of 20 days each,
followed by five Uayeb days not considered part of any period. Dates in
this calendar are written as a day number (0 to 19 for regular periods and 0 to
4 for the days of Uayeb) followed by the name of the period. This
calendar has no concept of year numbers; it simply repeats at the end of the
complete 365 day cycle. Consequently, it is not possible, given a date in the
Haab calendar, to determine the Long Count or year in other calendars. The 365
day cycle provides better alignment with the solar year than the 360 day tun
of the Long Count but, lacking a leap year mechanism, the Haab calendar shifted
one day with respect to the seasons about every four years.
The Mayan religion employed the Tzolkin calendar,
composed of 20 named periods of 13 days. Unlike the Haab calendar, in which the
day numbers increment until the end of the period, at which time the next period
name is used and the day count reset to 0, the names and numbers in the Tzolkin
calendar advance in parallel. On each successive day, the day number is
incremented by 1, being reset to 0 upon reaching 13, and the next in the cycle
of twenty names is affixed to it. Since 13 does not evenly divide 20, there are
thus a total of 260 day number and period names before the calendar repeats. As
with the Haab calendar, cycles are not counted and one cannot, therefore,
convert a Tzolkin date into a unique date in other calendars. The 260 day cycle
formed the basis for Mayan religious events and has no relation to the solar
year or lunar month.
The Mayans frequently specified dates using both the
Haab and Tzolkin calendars; dates of this form repeat only every 52 solar years.
Bahá'í Calendar
The Bahá'í calendar is a solar calendar organised as a hierarchy
of cycles, each of length 19, commemorating the 19 year period between the 1844
proclamation of the Báb in
Shiraz
and the revelation by Bahá'u'lláh in 1863. Days are named in a cycle of 19
names. Nineteen of these cycles of 19 days, usually called "months" even though
they have nothing whatsoever to do with the Moon, make up a year, with a period
between the 18th and 19th months referred to as
Ayyám-i-Há not considered part of any month; this period is four days
in normal years and five days in leap years. The rule for leap years is
identical to that of the Gregorian calendar, so the Bahá'í calendar shares its
accuracy and remains synchronised. The same cycle of 19 names is used for days
and months.
The year begins at the equinox, March 21, the Feast of Naw-Rúz;
days begin at sunset. Years have their own cycle of 19 names, called the
Váhid. Successive cycles of 19 years are numbered, with cycle 1 commencing
on March 21, 1844, the year in which the Báb announced his prophecy. Cycles, in
turn, are assembled into Kull-I-Shay
super-cycles of 361 (19˛) years. The first Kull-I-Shay
will not end until Gregorian calendar year 2205. A week of seven days is
superimposed on the calendar, with the week considered to begin on Saturday.
Confusingly, three of the names of weekdays are identical to names in the 19
name cycles for days and months.
Indian Civil Calendar
A bewildering variety of calendars have been and continue to be
used in the Indian subcontinent. In 1957 the Indian government's Calendar Reform
Committee adopted the National Calendar of India for civil purposes and, in
addition, defined guidelines to standardise computation of the religious
calendar, which is based on astronomical observations. The civil calendar is
used throughout India today for administrative purposes, but a variety of
religious calendars remain in use. We present the civil calendar here.
The National Calendar of India is composed of 12 months. The
first month, Caitra, is 30 days in normal and 31 days in leap years.
This is followed by five consecutive 31 day months, then six 30 day months. Leap
years in the Indian calendar occur in the same years as as in the Gregorian
calendar; the two calendars thus have identical accuracy and remain
synchronised.
Years in the Indian calendar are counted from the start of the
Saka Era, the equinox of March 22nd of year 79 in the Gregorian calendar,
designated day 1 of month Caitra of year 1 in the Saka Era. The calendar was
officially adopted on 1 Caitra, 1879 Saka Era, or March 22nd, 1957 Gregorian.
Since year 1 of the Indian calendar differs from year 1 of the Gregorian, to
determine whether a year in the Indian calendar is a leap year, add 78 to the
year of the Saka era then apply the Gregorian calendar rule to the sum.
French Republican Calendar
The French Republican calendar was adopted by a
decree of La Convention
Nationale on Gregorian date October 5, 1793 and went into effect the
following November 24th, on which day Fabre d'Églantine proposed to the
Convention
the names for the months. It incarnates the revolutionary spirit of "Out with
the old! In with the relentlessly rational!" which later gave rise in 1795 to
the metric system of weights and measures which has proven more durable than the
Republican calendar.
The calendar consists of 12 months of 30 days each, followed by a
five- or six-day holiday period, the
jours complémentaires or
sans-culottides. Months are grouped into four seasons; the three months
of each season end with the same letters and rhyme with one another. The
calendar begins on Gregorian date September 22nd, 1792, the September equinox
and date of the founding of the First Republic. This day is designated the first
day of the month of Vendémiaire in year 1 of the Republic. Subsequent years
begin on the day in which the September equinox occurs as reckoned at the Paris
meridian. Days begin at true solar midnight. Whether the sans-culottides
period contains five or six days depends on the actual date of the equinox.
Consequently, there is no leap year rule
per se: 366 day years do not recur in a regular pattern but instead
follow the dictates of astronomy. The calendar therefore stays perfectly aligned
with the seasons. No attempt is made to synchronise months with the phases of
the Moon.
The Republican calendar is rare in that it has no concept of a
seven day week. Each thirty day month is divided into three décades of
ten days each, the last of which, décadi, was the day of rest. (The
word "décade" may confuse English speakers; the French noun denoting
ten years is "décennie".) The names of days in the décade are
derived from their number in the ten day sequence. The five or six days of the
sans-culottides do not bear the names of the décade. Instead, each
of these holidays commemorates an aspect of the republican spirit. The last,
jour de la Révolution, occurs only in years of 366 days.
Napoléon abolished the Republican calendar in favour of the
Gregorian on January 1st, 1806. Thus France, one of the first countries to adopt
the Gregorian calendar (in December 1582), became the only country to
subsequently abandon and then re-adopt it. During the period of the Paris
Commune uprising in 1871 the Republican calendar was again briefly used.
The original decree
which established the Republican calendar contained a contradiction: it defined
the year as starting on the day of the true autumnal equinox in Paris, but
further prescribed a four year cycle called la Franciade, the fourth
year of which would end with le jour de la Révolution
and hence contain 366 days. These two specifications are incompatible, as 366
day years defined by the equinox do not recur on a regular four year schedule.
This problem was recognised shortly after the calendar was proclaimed, but the
calendar was abandoned five years before the first conflict would have occurred
and the issue was never formally resolved. Here we assume the equinox rule
prevails, as a rigid four year cycle would be no more accurate than the Julian
calendar, which couldn't possibly be the intent of its enlightened Republican
designers.
ISO-8601 Week and Day, and Day of Year
The
International Standards
Organisation
(ISO) issued Standard ISO 8601, "Representation of Dates" in 1988, superseding
the earlier ISO 2015. The bulk of the standard consists of standards for
representing dates in the Gregorian calendar including the highly recommended "YYYY-MM-DD"
form which is unambiguous, free of cultural bias, can be sorted into order
without rearrangement, and is Y9K compliant. In addition, ISO 8601 formally
defines the "calendar week" often encountered in commercial transactions in
Europe. The first calendar week of a year: week 1, is that week which contains
the first Thursday of the year (or, equivalently, the week which includes
January 4th of the year; the first day of that week is the previous Monday). The
last week: week 52 or 53 depending on the date of Monday in the first week, is
that which contains December 28th of the year. The first ISO calendar week of a
given year starts with a Monday which can be as early as December 29th of the
previous year or as late as January 4th of the present; the last calendar week
can end as late as Sunday, January 3rd of the subsequent year. ISO 8601 dates in
year, week, and day form are written with a "W" preceding the week number, which
bears a leading zero if less than 10, for example February 29th, 2000 is written
as 2000-02-29 in year, month, day format and 2000-W09-2 in year, week, day form;
since the day number can never exceed 7, only a single digit is required. The
hyphens may be elided for brevity and the day number omitted if not required.
You will frequently see date of manufacture codes such as "00W09" stamped on
products; this is an abbreviation of 2000-W09, the ninth week of year 2000.
In solar calendars such as the Gregorian, only days and years
have physical significance: days are defined by the rotation of the Earth, and
years by its orbit about the Sun. Months, decoupled from the phases of the Moon,
are but a memory of forgotten lunar calendars, while weeks of seven days are
entirely a social construct--while most calendars in use today adopt a cycle of
seven day names or numbers, calendars with name cycles ranging from four to
sixty days have been used by other cultures in history.
ISO 8601 permits us to jettison the historical and cultural
baggage of weeks and months and express a date simply by the year and day number
within that year, ranging from 001 for January 1st through 365 (366 in a leap
year) for December 31st. This format makes it easy to do arithmetic with dates
within a year, and only slightly more complicated for periods which span year
boundaries. You'll see this representation used in project planning and for
specifying delivery dates. ISO dates in this form are written as "YYYY-DDD",
for example 2000-060 for February 29th, 2000; leading zeroes are always written
in the day number, but the hyphen may be omitted for brevity.
All ISO 8601 date formats have the advantages of being fixed
length (at least until the Y10K crisis rolls around) and, when stored in a
computer, of being sorted in date order by an alphanumeric sort of their textual
representations. The ISO week and day and day of year calendars are derivative
of the Gregorian calendar and share its accuracy.
You can download the
ISO 8601 standard from the ISO Web site; to read this PDF document you'll
need Adobe Acrobat Reader,
which is available as a
free download
from Adobe's site.
Unix
time() value
Development of the Unix operating system began at Bell
Laboratories in 1969 by Dennis Ritchie and Ken Thompson, with the first PDP-11
version becoming operational in February 1971. Unix wisely adopted the
convention that all internal dates and times (for example, the time of creation
and last modification of files) were kept in Universal Time, and converted to
local time based on a per-user time zone specification. This far-sighted choice
has made it vastly easier to integrate Unix systems into far-flung networks
without a chaos of conflicting time settings.
Many machines on which Unix was initially widely deployed could
not support arithmetic on integers longer than 32 bits without costly
multiple-precision computation in software. The internal representation of time
was therefore chosen to be the number of seconds elapsed since 00:00 Universal
time on January 1, 1970 in the Gregorian calendar (Julian day 2440587.5), with
time stored as a 32 bit signed integer (long in early C
implementations).
The influence of Unix time representation has spread well beyond
Unix since most C and C++ libraries on other systems provide Unix-compatible
time and date functions. The major drawback of Unix time representation is that,
if kept as a 32 bit signed quantity, on January 19, 2038 it will go negative,
resulting in chaos in programs unprepared for this. Unix and C implementations
wisely (for reasons described below) define the result of the
time()
function as type time_t, which leaves the door open for remediation (by
changing the definition to a 64 bit integer, for example) before the clock ticks
the dreaded doomsday second.
C compilers on Unix systems prior to 7th Edition lacked the
32-bit long type. On earlier systems
time_t, the value
returned by the time() function, was an array of two 16-bit
ints
which, concatenated, represented the 32-bit value. This is the reason why
time() accepts a pointer argument to the result (prior to 7th Edition it
returned a status, not the 32-bit time) and ctime() requires a pointer
to its input argument. Thanks to Eric Allman (author of
sendmail) for
pointing out these historical nuggets.
Excel Serial Day Number
Spreadsheet calculations frequently need to do arithmetic with
date and time quantities--for example, calculating the interest on a loan with a
given term. When Microsoft Excel was introduced for the PC Windows platform, it
defined dates and times as "serial values", which express dates and times as the
number of days elapsed since midnight on January 1, 1900 with time given as a
fraction of a day. Midnight on January 1, 1900 is day 1.0 in this scheme. Time
zone is unspecified in Excel dates, with the NOW() function returning
whatever the computer's clock is set to--in most cases local time, so when
combining data from machines in different time zones you usually need to add or
subtract the bias, which can differ over the year due to observance of summer
time. Here we assume Excel dates represent Universal (Greenwich Mean) time,
since there isn't any other rational choice. But don't assume you can always get
away with this.
You'd be entitled to think, therefore, that conversion back and
forth between PC Excel serial values and Julian day numbers would simply be a
matter of adding or subtracting the Julian day number of December 31, 1899
(since the PC Excel days are numbered from 1). But this is a Microsoft
calendar, remember, so one must first look to make sure it doesn't contain one
of those bonehead blunders characteristic of Microsoft. As is usually the case,
one doesn't have to look very far. If you have a copy of PC Excel, fire it up,
format a cell as containing a date, and type 60 into it: out pops "February 29,
1900". News apparently travels very slowly from Rome to Redmond--ever
since Pope Gregory revised the calendar
in 1582, years divisible by 100 have not been leap years, and
consequently the year 1900 contained no February 29th. Due to this morsel of
information having been lost somewhere between the Holy See and the
Infernal Seattle monopoly, all Excel day numbers for days subsequent to
February 28th, 1900 are one day greater than the actual day count from January
1, 1900. Further, note that any computation of the number of days in a period
which begins in January or February 1900 and ends in a subsequent month will be
off by one--the day count will be one greater than the actual number of days
elapsed.
By the time the 1900 blunder was discovered, Excel users had
created millions of spreadsheets containing incorrect day numbers, so Microsoft
decided to leave the error in place rather than force users to convert their
spreadsheets, and the error remains to this day. Note, however, that only
1900
is affected; while the first release of Excel probably also screwed up all years
divisible by 100 and hence implemented a purely Julian calendar, contemporary
versions do correctly count days in 2000 (which is a leap year, being divisible
by 400), 2100, and subsequent end of century years.
PC Excel day numbers are valid only between 1 (January 1, 1900)
and 2958465 (December 31, 9999). Although a serial day counting scheme has no
difficulty coping with arbitrary date ranges or days before the start of the
epoch (given sufficient precision in the representation of numbers), Excel
doesn't do so. Day 0 is deemed the idiotic January 0, 1900 (at least in Excel
97), and negative days and those in Y10K and beyond are not handled at all.
Further, old versions of Excel did date arithmetic using 16 bit quantities and
did not support day numbers greater than 65380 (December 31, 2078); I do not
know in which release of Excel this limitation was remedied.
Having saddled every PC Excel user with a defective date
numbering scheme wasn't enough for Microsoft--nothing ever is. Next, they
proceeded to come out with a Macintosh version of Excel which uses an
entirely different day numbering system based on the MacOS native time
format which counts seconds elapsed since January 1, 1904. To further obfuscate
matters, on the Macintosh they chose to number days from zero rather than 1, so
midnight on January 1, 1904 has serial value 0.0. By starting in 1904, they
avoided screwing up 1900 as they did on the PC. So now Excel users who
interchange data have to cope with two incompatible schemes for counting days,
one of which thinks 1900 was a leap year and the other which doesn't go back
that far. To compound the fun, you can now select either date system on either
platform, so you can't be certain dates are compatible even when receiving data
from another user with same kind of machine you're using. I'm sure this was all
done in the interest of the "efficiency" of which Microsoft is so fond. As we
all know, it would take a computer
almost forever to add or subtract four in order to make everything
seamlessly interchangeable.
Macintosh Excel day numbers are valid only between 0
(January 1, 1904) and 2957003 (December 31, 9999). Although a serial day
counting scheme has no difficulty coping with arbitrary date ranges or days
before the start of the epoch (given sufficient precision in the representation
of numbers), Excel doesn't do so. Negative days and those in Y10K and beyond are
not handled at all. Further, old versions of Excel did date arithmetic using 16
bit quantities and did not support day numbers greater than 63918 (December 31,
2078); I do not know in which release of Excel this limitation was remedied.
References
- Meeus, Jean.
Astronomical Algorithms
. Richmond: Willmann-Bell, 1991. ISBN 0-943396-35-2.
- The essential reference for computational positional
astronomy.
- P. Kenneth Seidelmann (ed.)
Explanatory Supplement to the Astronomical Almanac
. Sausalito CA: University Science Books, 1992. ISBN 0-935702-68-7.
- Authoritative reference on a wealth of topics related to
computational geodesy and astronomy. Various calendars are described in depth,
including techniques for interconversion.
- The Institut de
mécanique céleste et de calcul des éphémérides in Paris provides excellent
on-line descriptions of a variety of
calendars.
Other research
resources on our site >>
by John Walker
March, MMII
This document is in the public domain.
|
|