Easter date algorithms (c) Henk Reints

Use this algorithm | Gebruik deze algoritme

Gregorian algorithm by Aloysius Lilius and Christophorus Clavius.

Valid for any year since 1583.

Together with Clavius, Lilius was the primary designer of the Gregorian calendar (and not Pope Gregory XIII himself). Since this is the algorithm that they developed, it should be considered as the REAL THING used by the Roman Catholic Church since the introduction of the Gregorian calendar in 1582 (the first Gregorian Easter was in 1583).

The has published Christophorus Clavius' full Opera Mathematica. The Fifth Volume (ca. 600 pages!) contains copies of all original documents of the Gregorian calendar reform as well as a very detailed explanation and lots of tables. The algorithm explained below is in fact a modern computational summary of those few hundred pages.

Rodolphe Audette has published transcriptions of the primary documents including French translations and I have made a Dutch translation thereof.

Click here to see my own variant of this algorithm.

See explanation below.

Hans van Maanen: Kleine encyclopedie van misvattingen, (ISBN 90-5352-173-9), pp 150..151.

This is a very nice (dutch) booklet that explains the "real truth" (?) about many things that everyone knows for sure and takes for granted whilst they are just not true. It also corrects the idea that Easter would be dated according to the real moon and the real beginning of spring. It gives this algorithm as the actual Easter dating method, but I had to make a correction in the second step of calculating F, the epacta (A>11 vs. A=11), in order to make it correspond to all other methods I could find. (Addendum @2009: this correction is (as far as I can find out) also correct according to Clavius' Opera Mathematica)

See also Hans van Maanen: Misvattingen: Godsdienst
and Hans van Maanen: Columns: Pasen
(both pages are in Dutch, links added to this page on 15-Feb-2007).
  A = year MOD 19 + 1  
  B = year DIV 100 + 1  
  C = (3 x B) DIV 4 - 12  
  D = (8 x B + 5) DIV 25 - 5  
  E = (year x 5) DIV 4 - 10 - C  
  F = ( (11 x A + 20 + D - C) MOD 30 + 30) MOD 30
(the double MOD prevents F to go below zero for large years)
  if F = 24 or (F = 25 and A > 11) then F = F + 1  
  G = 44 - F  
  if G < 21 then G = G + 30  
  result = G + 7 - (E + G) MOD 7  


Use this algorithm | Gebruik deze algoritme


To me, this Lilius/Clavius algorithm is the most beautiful and elegant, because it gives a clear understanding of how the moon behaves on the Gregorian calendar and how it determines the Easter date. I consider all other algorithms as just very smart arithmetic tricks to find the same result (except for the Gauss method, which is an incomplete algorithm since it still needs a table).


  1. is the golden number, a sequence number in the 19-year Metonic cycle or moon cycle. Meton, an ancient Greek, had discovered that in 19 tropical years there are nearly exactly 235 synodic months (= full moons).
  2. is just the number of the century.
  3. takes account for the difference between the Gregorian and the Julian calendar (the Gregorian calendar has 3 leap years less every 4 centuries).
  4. is a correction for the inaccuracy of the Metonic cycle, because that is not exactly 19 years. It shifts 1 day in 310 (Julian) years, which is nearly the same as 8 days in 25 (Gregorian) centuries.
  5. takes account for the weekday of 21 March. Since a year is 1 day longer than 52 weeks, it comes 1 weekday later every year plus a leap day every 4 years, resulting in 5 days every 4 years (do you recognize that your own birthday does just the same thing?). C is used to correct E for the Gregorian non-leap centuries.
  6. is the epacta, the age of the moon at the start of the year. Since a tropical year is 11 days longer than 12 synodic moons (a so called moon year) the full moon comes 11 days sooner each year, which is clearly visible in the algorithm. In the same time the corrections by the D and C components are applied. The second (correcting) step in the calculation of F results from the fact that a synodic moon is not exactly 30 days but a bit less (29.53059), and the 11 days difference between the just mentioned moon year and the tropical year is also not exact (10.89).
  7. is either the first full moon since the vernal equinox on 21 March or the last one before. If it is before then a synodic month of 30 days is added.

Finally, the resulting Sunday following this Paschall Full Moon is calculated very easily.

In this Lilius/Clavius algorithm, one can see some periodic cycles:

  1. The already mentioned Metonic or moon cycle of 19 years.
  2. The C component of the algorithm corrects the epacta for the Gregorian non-leap centuries with 3 days per 400 years. That will cycle through F if it becomes a multiple of 30 (the (approximated) synodic month) in an integer number of centuries, i.e. in 4000 years.
  3. The weekday of 21 March depends on the main cycle of the Gregorian calendar itself, which is 400 years (that's exactly an integer number (20871) of weeks).

Thus, the Gregorian Easter algorithm has a total cycle duration equal to the Smallest Common Multiple of 19, 4000, 37500, and 400, which is 5 700 000 years.

Easter date algorithms (c) Henk Reints