The book explains the structure of 14 calendars, and gives easily comprehensible formulae for the conversion of a date in any of these calendars into a day count, and back to the calendar date. It also includes many holidays for these calendars.Rather than on the history of calendars or their cultural background, the focus is on a lucid, correct, and complete exposition of their functional principles. Extensive bibliographic references are given to the primary sources for each calendar.
A highlight is the complete specification of several calendars depending on fairly precise timings of astronomical phenomena (Chinese calendar and some Hindu religious calendars).
To make it self-contained, the book explains the necessary mathematical and astronomical background. The astronomical models are taken from the classic 1991 book "Astronomical Algorithms" by Jean Meeus.
I especially like the presentation of the calendrical formulae in an essentially non-algorithmic manner, using normal mathematical notation. This makes it easy to further analyze these formulae.
For instance, if one wants to know how good an approximation to the spring equinox is March 21 in the Gregorian calendar, one finds from the formula on page 36 in the book that midnight of March 21 in Gregorian year Y is exactly
Y·365.2425 - (Y mod 4)·97/400 + (floor(Y/4) mod 25)·3/100 - (floor(Y/100) mod 4)/4
days after midnight of March 21 in Gregorian year 0, which ranges from Y·365.2425 - 1.4775 up to Y·365.2425 + 0.72. Thus, even assuming the Gregorian approximation of 365.2425 days to the tropical year, spring equinoxes are distributed over at least three dates in March in the Gregorian calendar.
Such reasonings would be very difficult if the book specified the calendars only in terms of programming language code.
The formulae are designed so that it is easy to incorporate them into code written in the programming language of your choice. This use is further supported by a set of test dates in an appendix. Another appendix lists an example implementation of all the formulae, in the programming language Common Lisp. This code (intended for personal use) can also be downloaded from the internet.
But this book is much more than a collection of programming recipes for many calendars -- it makes you understand the structure of those calendars. Ambitious readers can even find the data and the methods to construct their own calendrical formulae.
What would I like to be changed in the book? Not much. Some of the calendrical formulae could be further simplified, the astronomical terminology could be modernized in places, and perhaps some additional historical information could be added. And, of course, even more calendars! For instance, some of the proposed reformed calendars, a more widespread version of the Persian calendar, or an historic Japanese calendar.
This book is a must for everybody wanting reliable and highly readable information on the functional principles of the world's calendars.
Michael Deckers