Contained here are a few ramblings about the information contained on my
events page. In particular about the different calendars shown. This is not
meant to be a long discourse on the various calendars but instead to give you
some flavor of the different calendars. The algorithms come from the work of
Nachum Dershowitz and Edward M. Reingold. They have written a book (which I
haven't seen yet) which is probably the single best place to go for a wide
variety of calendars and algorithms. I took the information from two papers,
``Calendrical Calculations'', Dershowitz, N. & Reingold, E. M. 1990
Software-Practice and Experience 20 899
``Calendrical Calculations, II: Three Historical Calendars'', Reingold, E. M.,
Dershowitz, N., & Clamen, Stewart, M. 1993 Software-Practice and
Experience 23 383.
For the most part I tried to implement the algorithms in an efficient manner
but I didn't go to great pains. Note that the elisp calendar code that comes
with Emacs19 and XEmacs is one realization of their algorithms. The
discussion provided below borrows heavily from the papers quoted above.
Return to today's events or
The event information I provide here could be in error. I am slowly
collecting event information but do not have the time nor resources to
properly research the events. Instead I rely on people to send me new events
and corrections to the old ones to keep my data base growing.
The key to the algorithms used here is the idea of an absolute date. This, in
spirit, is similarly to the astronomical use of the Julian Day. We count days from a given zero point. The
zero point chosen is absolute day 1 occurred on the (mythical) Gregorian date Monday, January 1, 1 C.E. As we note
below the Gregorian Calendar was not in existence at
this time so this is not a real date. We now only need to provide routines
that calculate to and from this absolute date for a given calendrical system.
This choice of zero point as the added nice feature that the absolute date
modulo 7 returns the current day of the week (0=Sunday, 1=Monday, ...).
The Gregorian Calendar is the present day civil calendar in much of the
world. It was instituted by Pope Gregory when he corrected the Julian Calendar by proclaiming that Thursday, October 4,
1582 C.E. would be followed by Friday, October 15, 1582 C.E. thus skipping 10
days. Over time most of the countries of world adopted this calendar. It
corrected for the problems of the Julian Calendar by
introducing a more complicated leap year structure: Year y is a leap year if
it is divisible by 400 or it is a year that is divisible by 4 and not
divisible by 100. This algorithm was made even more precise in the French Revolutionary Calendar. Algorithmically this can be
written compactly (in C) as
(((y%4 == 0) && (y%100 != 0)) || (y%400 == 0))
The Julian Day is a strict counting of days before and after Monday, Jan 1,
4713 B.C.E. This is identical to the Absolute Date we use as the basis for
all our conversions except with a different starting date. This
method of dating was introduced in 1583 by Joseph Justus Scaliger and is used
by Astronomers. It is also frequently used to specify dates B.C.E. since it
avoids the complications of the Julian/Gregorian Calendars that do not have a year zero. Year
1 C.E. was preceded by the year -1 B.C.E. in these calendars.
One minor complication is that the day starts at noon UTC. It is also common
in astronomical work to make reference to the fraction of the day that has
elapsed. We have included this information to two decimal places.
The Julian Calendar was the predecessor to the Gregorian
Calendar as the civil calendar for much of the world. It has a very
simple leap year structure, all years divisible by 4 are leap years. This is
close to true but deviates from the average length of the solar year over
time. Thus the need for the 10 day correction in 1582.
The International Organization for Standardization (ISO) produced a calendar
that is popular in some European countries. A date is specified as the
ordinal day in the week and the `calendar week' of the Gregorian year.
By far the most sensible calendar in existence. It is a minor
modification to the Gregorian calendar. In
fact, it is the next reform to the calendar that started with Julius
Caesar (Julian) and was followed by Pope
Gregory (Gregorian). Unlike the Gregorian calendar, in the world calendar each
date falls on the same day of the week every year instead of the 28
year cycle as we have now. Furthermore the months will have sensible
lengths of 31, 30, 30, ... (the pattern repeated 3 more times) days.
Notice we still have 12 months and they have the same names. Notice
we still have 7 day weeks and the days have the same names. If you
look carefully you will notice this only accounts for 364 days. To
get around this we call day 365 (currently known as Dec 31) World's
Day. It is a world holiday and doesn't belong to any month. During
a leap year we add another day after June 30 called Leapyear Day.
Again it is a world holiday and it doesn't belong to any month. Leap
years are exactly the same as in the Gregorian calendar.
Despite being emminently sensible and having been introduced well
over 50 years ago to much acclaim; it will never be accepted. Sadly
people are too obstinate to switch to a sensible calendar. The days
of forcing an intelligent calendar reform on the world are long gone.
The Hebrew Calendar is one of the most complicated calendars I consider. It
attempts to keep the months strictly lunar cycles and still be in sync with a
solar year. On top of this are strict guidelines as to what days certain
religious events must occur. It used to be the case that a new month was
decreed when a new moon was ``sighted''. For the most part this has been
turned over to astronomical calculations which are more accurate. The new day
begins at sunset. For our purposes we start new days at 6pm local time. This
is a good enough approximation to when the sun sets.
This Islamic Calendar is a strictly lunar calendar making it very easy to
calculate. No attempt is made to keep the months in line with the seasons of
the year. Instead they wander through the seasons as the years go by. As in
the Hebrew Calendar the day begins at sunset which we
again take to be 6pm local time. Unfortunately the calculations provided here
are only approximate. Unlike the Hebrew Calendar there
are many more disparate forms of the Islamic Calendar. Even worse, much of
the Islamic world still relies on proclamations of the new moon by religious
authorities instead of on calculations. Thus the routines can be in error by
a day or two from what is actually observed in different parts of the Islamic
The Mayans developed (at least) three calendars that we will consider here.
The first is the Long Count Calendar. It counts the number of since the
beginning of the current cycle. Each cycle contains 2,880,000 days (about
7885 solar years). At the end of each cycle the Universe is destroyed and
recreated. Interestingly, for longer time periods the Mayans had developed
larger time units than are needed for the Long Count Calendar; the largest
being about 63,081,377 solar years! Although the calendar is well understood
the problem is correlating it with a modern calendar so we know what given
long count date corresponds to what Gregorian date.
There are (at least) two different correlations in common use, the
Goodman-Martinez-Thomas correlation and the Spinden correlation. I have
chosen to use the Goodman-Martinez-Thomas correlation for the date shown here.
The Haab Calendar was the civil calendar and consisted of a 18 `months' of 20
days each. The remaining 5 `monthless' days at the end of the year were in
the unlucky period called Uayeb. Note that there is no concept of a
year in this calendar. It just cycles on endlessly. Also note that the day
number indicates the number of elapsed days in the current month, so it starts
at 0 (the first day hasn't elapsed yet).
The Tzolkin Calendar was the religious calendar and consisted of two cycles,
one of 13 days and the other of 20 names. The interesting feature of this
calendar is both cycles counted simultaneously. It would be like incrementing
the day and the month in the Gregorian Calendar (so
the days would go Jan 1, Feb 2, Mar 3, ...). Notice that again there is no
concept of year in this calendar. It was popular to specify dates by both
their Haab date and Tzolkin date. This leads to a cycles of 18980 days or
about 52 solar years.
The French Revolutionary Calendar was established Saturday, September 22, 1792
(Gregorian), the autumnal equinox of that year. It
became the official calendar on Sunday, September 24, 1793 (Gregorian). It was used until December 31, 1805 (Gregorian) when an edict by Napolean returned France to
the Gregorian Calendar.
The French revolutionaries redefined everything about the calendar, except for
the day. Both the day and month names were changed. The calendar was made of
12 months of 30 days each plus 5 extra days (6 in a leap year) that did not
fall in any month. Each month was divided into 3 weeks of 10 days. The
workers only got 1 day in 10 off under this new scheme instead of 1 in 7 with
the old one. Furthermore they divided the day into 10 ``hours''; each hour
had 100 ``minutes'' and each minute had 100 ``seconds''. Clearly the
definition of hour, minute, and second is different than what we are used to
under the current system.
The leap year structure is somewhat complicated. The original intent was to
keep the autumnal equinox on the first day of each year. However the equinox
wanders by a day or two over time so this scheme was not very easy to
implement. After year 20 it was intended to adopt and algorthmic approach to
leap years. The algorithm proposed was the same as the Gregorian Calendar except for the additional rule that
years divisible by 4000 are not leap years. Pope Gregory considered including
this rule since it makes the calendar stay true to the solar year for a much
longer period of time, but rejected it as making the rule needlessly
complicated. Ironically the French revolutionaries planned on adopting a very
precise rule but the calendar only existed for about 13 years. The years 3,
7, and 11 were observed as leap years. The years 15 and 20 were planned to be
leap years and the algorithm was to be adopted after this, however the
calendar didn't exist for that long. Note that based on the algorithm we
would have expected 5 of the first 20 years to be leap years, only the years
are different than the algorithm would give. We follow this set of rules for
determining leap years even though they were never used in practice.
I am planning on implementing a few new calendars. When they are done I will
fill in the appropriate information. Basically I intend to include all of
them that come with Emacs. After all, they are coded in the same scheme I'm
using and the source code (in elisp) is available.
Return to today's events or
Back to my home page
Craig J Copi |
Html 3.2 Final DTD
. . . valid!