After beeing silent overthe holiday season, happy New Year to all my readers. At least if your new year started recently or is about to start.
I added this last sentence because my calendrical awareness has been risen by a most unexpected Christmas present from my parents. For many years now, I have provided them with home made personal Fil-o-Fax style calenders that I produce with a combination of C program (translated before I was aware of Perl from a GFA Basic program for my old Atari ST) and TeX template (contact me if interested). Every year, I keep asking my folks for providing a data file with personal dates (birthdays etc) and I manually add public holidays.
At least the last step will be unneccesary in the future, because they gave me 'Calendrical Calculations' by Edward M. Reingold and Nachum Dershowitz, the authors of the emacs calender mode. A wonderful book, pubished by Cambridge University Press, it comes with a cdrom with Lisp, mathematica and java code and there is also a website.
Obviously, the main problem is that a good calender should be in synch with days, months and years defined as periods of the earth's rotation, the lunar orbit and the earth's orbit around the sun. Unfortunately (or fortunately, as otherwise the three body system would probably be unstable) the periods come in no simple rational ratios.
The solution is to either to ignore some of the periods (the moslem calendar pretty much ignore's the year as the moslem months move through the seasons) or to cme up with a more or less complicated system of leap years and leap months.
Our (the Gregorian) calender does pretty well with months of changing lengths and leap years (or better: leap days) if the year is divisable by 4 and not by 100 or by 400. Other cultures have found very different solutions often of comparable accuracy (although all calenders covered ignore the fact that the orbital periods slow down on the average over millenia). However, some of the calendars (namely the Hebrew and the the Hindu (astronomical) calender employ quite a difficult system of when to introduce leap years and months. But of course this is just the fun of this (admittedly quite nerdy) book that gives the algorithms (and lisp code) to pin down all these calenders exactly. At least as far as possible, as for example for the moslem months to begin require the new moon to be actually observed my official astronomers and are not determined by some mathematical algorithm.
The book covers the Gregorian, the ISO, Egyptian, Armenian, Julian, Coptic, Ethiopic, Islamic (Moslem), modern Persian (two forms), Baha'i (two forms), Hebrew, Mayan, Balinese Pawukon, French Revolutionary (two forms), Chinese and Japanese, old Hindu (solar and lunisolar) calenders. Where there are two forms, there is one arithmetic (defined in terms of rational numbers) and one astronomical based on astronomical formulas for the position and phases of the heavenly bodies.
This book, although fact loaden, is a lot of fun to read. And getting your calender right is not only important not to miss your dates but can have much more severe consequences: If your religion tells you to celebrate religious holidays and you get those wrong (you might know, the definition of the day for easter is quite complicated) and celebrate the wrong days your deity could get quite upset!
For example, you might know that Easter is the first Sunday after the first full moon after the spring equinox. So far, that's simple. But which arithmetic rule due you use to determine the astronomical events and at which point do you round? For example , the current rule is first to find the day of the equinox (and to have day to lastfrom midnight to midnight is only one possible convention). So you have already rounded. Then you find the day of the full moon. And you only count a full moon if the day is actually a day after the day of the equinox (that is if there is a full moon after the equinox but still on the same day, it does not count). etc. etc. If that sounds like fun to you get that book!