REVIEW - Calendrical Calculations

Title:

Calendrical Calculations

Author:

Nachum Dershowitz, Edward M. Reingold

ISBN:

9780521564748

Publisher:

Cambridge University Press (1997)

Pages:

268pp

Reviewer:

Francis Glassborow

Reviewed:

February 1998

Rating:

★★★☆☆

In conclusion, I think this book deserves to be widely read even if the Lisp content is heavy going. Good selective reading style will allow you to enjoy the information in this book while skipping the Lisp. You can hone your programming skills by implementing various calendars in the language of your choice.

Over the last few years the authors of this book have published several interesting papers on calendars past and present. Unfortunately for the ordinary reader these have been in Software Practice and Experience . The quality of this academic journal is extremely high but so is its price. About 18 months ago I discovered that the material was to be published in book form. After several delays this has finally been accomplished.

The text is everything that I had hoped for. However interlaced with the text we have the algorithms presented in Common Lisp. For many that will be a problem because Lisp is not an easy programming language to read. I can hear the hackles of fluent Lisp programmers rise. Lisp is a great language for those with a particular mind-set coupled with training. Unfortunately for the authors this is a very small minority of programmers, for the rest Lisp code just wraps algorithms in a thick mist of arcane syntax (and you thought C was bad :-)

The sad thing about this is that the consequence will be that many who would enjoy the substance of this book will return it to the bookshop's shelves after a brief browse through the pages. It takes a mature reading style to skip calmly past pages of a book to find that which concerns or interests you.

The main text gives extensive coverage of calendars that are still in use (with an excursion into the Mayan and Old Hindu Calendars). Interlaced with highly informative and well-researched material in plain English we have a more formal description of the algorithms used.

The book is packed with nuggets of information. Let me try you with a couple of questions (I'll put the answers at the end of this section).

What day of the week was January 1st 100 AD?

How can the day after December 29th be in the next year?

In conclusion, I think this book deserves to be widely read even if the Lisp content is heavy going. Good selective reading style will allow you to enjoy the information in this book while skipping the Lisp. You can hone your programming skills by implementing various calendars in the language of your choice.

Calendar Questions:

Q1. That is a naughty question because there isn't a unique answer. Contrary to common belief the Gregorian and Julian calendars did not start from the same base day. January 1st 1 AD (Gregorian) - a Monday - was January 3rd 1 AD (Julian). Unless I had specified which calendar I was using you could not answer the question. I am sorry if you wasted time trying to.

Q2. The ISO calendar (yes there is one) starts with week 1 which is defined to be the week that contains the first Thursday of the Gregorian year (equivalent to the week that contains January 4th because ISO weeks start on Sundays). So if December 29th is a Saturday then the next day will be the first day of the first week of the next ISO year. By the way that means that ISO years consist of either 364 or 371 days. - Francis


Book cover image courtesy of Open Library.