Tikalon Header

Calculating Easter

April 5-8, 2012

Easter Bunnies (Postcard, c. 1900)Easter is this Sunday, April 8, 2012. Last year, it was on April 24, and in 2010, it was on April 4.

Why the variation?

I present the method used to determine the
date of Easter, so you'll have a short programming exercise to do on your holiday.

Tikalon is on an Easter holiday.

Our next regular article will appear on Monday (April 9, 2012).

The calculation of the date of Easter is so important that it has a special name, Computus. The date of Easter is the Sunday following the first full moon after the vernal equinox, the astronomical marker for spring. With that information, you would think that all you would need to do is consult some standard astronomical tables and point to the right Sunday on the calendar.

The problem here is that both the vernal equinox and the full moon are not observationally determined. They are calculated by some simple astronomical
models. This is not as odd as it seems, since it eliminates the need to do the observations. As the Muslims have discovered in the timekeeping for their holy days, such as Ramadan, observation poses a problem. The date of certain Muslim holy days is set by the first sighting of the lunar crescent in Saudi Arabia, a difficult observation.

According to the model, the date of the vernal equinox is set to be always March 21. The so-called
Ecclesiastical Full Moon is determined through computation. The time of this full moon is determined by the idea that there should be 235 synodic months in 19 years. This isn't a bad estimate, since there are actually 234.997. A consequence of this is that the earliest Easter is on March 22, and the latest Easter is on April 25.

Our venerable timekeepers,[2] the
astronomers at the US Naval Observatory, give the following algorithm for calculating the date of Easter.[1] The calculated date( year, month, day = y, m, d) is the Gregorian date. The Eastern Orthodox Church uses the Julian Calendar, so its date for Easter is often different. The division operator (/) in these formulae is for integer division, so any remainder is dropped; e.g., 12/5 = 2. The algorithm appeared in a 1992 Naval Observatory publication.[3]
c = y / 100
n = y - 19 * ( y / 19 )
k = ( c - 17 ) / 25
i = c - c / 4 - ( c - k ) / 3 + 19 * n + 15
i = i - 30 * ( i / 30 )
i = i - ( i / 28 ) * ( 1 - ( i / 28 ) * ( 29 / ( i + 1 ) ) * (( 21 - n ) / 11 ))
j = y + y / 4 + i + 2 - c + c / 4
j = j - 7 * ( j / 7 )
l = i - j
m = 3 + ( l + 40 ) / 44
d = l + 28 - 31 * ( m / 4 )

For the year 2012, we get the following intermediate values: c = 20, n = 17, k = 0, i = 17, j = 6, and l = 11.

I'm leaving the
programming as an exercise to the interested reader. This might be a good homework assignment for a programming course, and it would certainly teach how the division operator works with integer variables. I have, however, implemented this algorithm as an Open Office spreadsheet, Easter.ods, translated into an Excel spreadsheet, Easter.xls

The spreadsheets illustrate how to avoid a typical pitfall of translating
mathematical formulae into spreadsheet formulae; that is, how to properly treat negation. You can't copy and paste formulae and hope to get the proper results.

For a short summary of why there are
Easter bunnies, see Ref. 4.[4]

chicksHow can we show bunnies without some complementary chicks!

(Source image: Wikimedia Commons).

References:

  1. Computing the Date of Easter, US Naval Observatory.
  2. US Naval Observatory Master Clock.
  3. The algorithm was designed by J.-M. Oudin (1940). It appears in L. E. Doggett, "Calendars", Chapter 12 of "Explanatory Supplement to the Astronomical Almanac," P. K. Seidelmann, Ed., (1992, revised 2006).
  4. Marylynn Uricchio, "Hippity Hoppity: Rabbits abound during Easter," Pittsburgh Post-Gazette, April 3, 2012.