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 tomorrow's events.


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.

Absolute Date

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)) 

Julian Day

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 world.


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.

French Revolutionary

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.

Future Calendars

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.

Old Hindu


Return to today's events or tomorrow's events.

Back to my home page

Craig J Copi |

Html 3.2 Final DTD . . . valid!