ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Calendrical Calculations
Nachum Dershowitz&Edward M Reingold
0 521 56474 3
Cambridge University Press
Francis Glassborow
Appeared in:
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 inSoftware 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