Calendrical Calculations is a book on calendar systems and algorithms for computers to convert between them. It was written by computer scientists Nachum Dershowitz and Edward Reingold, and published in 1997 by the Cambridge University Press. A second "millenium" edition with a CD-ROM of software was published in 2001, a third edition in 2008, and a fourth "ultimate" edition in 2018.
There have been many different calendars in different societies, and there is much difficulty in converting between them, largely because of the impossibility of reconciling the irrational ratios of the daily, monthly, and yearly astronomical cycle lengths using integers. The 14 calendars discussed in the first edition of the book included the Gregorian calendar, ISO week date, Julian calendar, Coptic calendar, Ethiopian calendar, Islamic calendar, modern Iranian calendar, Baháʼí calendar, French Republican calendar, old and modern Hindu calendars, Maya calendar, and modern Chinese calendar. Later editions expanded it to many more calendars. They are divided into two groups: "arithmetical" calendars, whose calculations can be separated from the positions of the moon and sun, and "astronomical" calendars, based in part on those positions.
The authors design individual calendrical calculation algorithms for converting each of these calendars to and from a common format, the Rata Die system of days numbered from January 1 of the (fictional) Gregorian year 1. Combining these methods allows the conversion between any two of the calendars. One of the innovations of the book is the use of clever coding to replace tables of values of mildly-irregular sequences, such as the numbers of days in a month. The authors also discuss the history of the calendars they describe, analyze their accuracy with respect to the astronomical events that they were designed to model, and point out important days in the year of each calendar. An appendix includes full documentation of the software.
One purpose of the book is to provide usable and efficient open software in an area where previous solutions were largely proprietary, incomplete, and buggy. Author Edward Reingold originally programmed these methods in Emacs Lisp, as part of the text editor GNU Emacs, and the authors expanded an earlier journal publication on this implementation into the book. This code has been converted to Common Lisp for the book, with an open license, and included within the book as a precise and unambiguous way of describing each algorithm.
Audience and reception
This is primarily a reference book, but can also be read for pleasure by readers interested in this topic. Reviewer Victor J. Katz recommends this book to anyone who is "at all interested in how we deal with time". However, reviewer John D. Cook points out that, to understand the details of the algorithms described in the book, readers must be familiar with Lisp coding, and that it is difficult to skim without working through the details. On the other hand, despite not being easy reading, reviewer Antonio F. Rañada recommends it not only to "mathematicians, astronomers or computer scientists, but also for historians or for any person interested in the cultural aspects of science".
Reviewer Noel Swerdlow views the first edition as a "work in progress", preferring the 19th-century tables of Robert Schram to computerized methods. And while praising it for avoiding the "second-hand errors, third-order simplifications, and outright myths" of many other millennial works on the calendar, reviewer Robert Poole points out as a weakness that it only considers a single version of each calendar, whereas historically these systems went through multiple revisions, and quotes the book as noting that its results are sometimes "mathematically sensible, but culturally wrong". Adding that the reduction of a human-produced calendar to a computer calculation is "sheer hubris", he nevertheless concludes that "We can be grateful that so useful a work of reference has been created from a project of such awe-inspiring futility". And reviewer Manfred Kudlek calls this "the most extensive and detailed publication on calendar systems" since the early 20th-century Handbuch der mathematischen und technischen Chronologie of Friedrich Karl Ginzel.
- Rañada, Antonio F. (March 1998), "Review of Calendrical Calculations (1st ed.)", European Journal of Physics, 19 (2), doi:10.1088/0143-0807/19/2/020
- Katz, Victor J., "Review of Calendrical Calculations (1st ed.)", Mathematical Reviews, MR 1462888
- Akutowicz, A., "Review of Calendrical Calculations (2nd ed.)", zbMATH, Zbl 1004.01001
- Lumiste, Ülo, "Review of Calendrical Calculations (3rd ed.)", zbMATH, Zbl 1141.01001
- Cook, John D. (July 2018), "Review of Calendrical Calculations (4th ed.)", MAA Reviews, Mathematical Association of America
- McCarthy, Daniel (December 1998), "Review of Calendrical Calculations (1st ed.)", Isis, 89 (4): 703–704, JSTOR 236740
- Kelley, David H. (November 1999), "Calendrical systems explored", Journal for the History of Astronomy, 30 (4): 407–409, Bibcode:1999JHA....30..407D, doi:10.1177/002182869903000404
- Wynne Willson, William (March 1999), "Review of Calendrical Calculations (1st ed.)", The Mathematical Gazette, 83 (496): 159–160, doi:10.2307/3618726, JSTOR 3618726
- Kudlek, Manfred, "Review of Calendrical Calculations (1st ed.)", zbMATH, Zbl 0894.01023
- Swerdlow, N. M. (July 1998), "Review of Calendrical Calculations (1st ed.)", IEEE Annals of the History of Computing, 20 (3): 78–78, doi:10.1109/mahc.1998.707580
- Poole, Robert (March 1999), "Review of Calendrical Calculations (1st ed.)", The British Journal for the History of Science, 32 (1): 116–118, JSTOR 4027975; reprinted in Mathematics in School (1998), JSTOR 30215396