OFFSET
0,1
COMMENTS
The date of the Gregorian Paschal (Ecclesiastical) Full Moon (GPFM) in year n is a(n) days after March 21. The values of a(n) all lie within the range 0 to 28, and correspond to dates March 21 through April 18. Gregorian Easter Sunday is the first Sunday after (never on) the GPFM, so it falls between March 22 and April 25. The complete GPFM cycle is a repeating sequence of 5700000 terms, a(0) through a(5699999), which spans 5700000 Gregorian years, 70499183 Gregorian lunar cycles, 297411750 weeks, and 2081882250 days. Because this is a whole number of weeks, the Gregorian Easter Sunday dates also repeat after 5700000 years; otherwise, Easter Sunday would repeat every 39900000 years. As of AD 2000, the true (astronomical) lunar cycle (synodic month) averages 29.5305888645 days; the Gregorian lunar cycle averages 2081882250/70499183 days = 29.5305869005 days, and thus falls behind the true moon by 0.00243 days per century.
For the older Julian calendar, the corresponding sequence for the Julian Paschal Full Moon (JPFM) consists of the first 19 terms of the GPFM sequence, a(0) through a(18), and it repeats every 19 years. Thus, for year n in the Julian calendar, where n=19*k+m and 0<=m<=18, the JPFM falls a(m) days after March 21 and Julian Easter Sunday is the first Sunday after (never on) the JPFM. Each JPFM cycle spans 19 Julian years, 235 Julian lunar cycles, and an average of 19*365.25 = 6939.75 days. The complete Julian Easter Sunday cycle repeats after 28 JPFM cycles, thereby spanning 532 Julian years, 6580 Julian lunar cycles, 27759 weeks, and 194313 days. The Julian lunar cycle averages 194313/6580 = 29.5308510638 days, and thus drifts ahead of the true moon by 0.3243 days per century.
The year 0 AD (conventionally denoted as 1 BC) is used here as a starting point for a(0) solely as a computational convenience; the observation of both Julian Easter and Gregorian Easter began centuries after 0 AD. Although the Gregorian calendar is used worldwide today for virtually all civil matters, most of the Eastern Orthodox Christian Churches still observe Julian ("Orthodox") Easter Sunday, whereas the Western Christian Churches overwhelmingly observe Gregorian Easter Sunday.
REFERENCES
Byron Lawrence Gurnette and Richard van der Riet Woolley, Explanatory Supplement to the Astronomical Ephemeris, H. M. Stationery Office, London, 1961, pages 420-429.
Donald Ervin Knuth, The Art of Computer Programming, Stanford University, 1968. Volume 1, Chapter 1.3.2, Exercise #14.
Thomas Hay O'Beirne, Puzzles and Paradoxes, Oxford University, London, 1965, Chapter 10, pages 168-184. Reprinted by Dover Publications, New York, 1984.
Edward Graham Richards, Mapping Time, Oxford University, London, 1998. Part IV, especially pages 364, 375-376.
Paul Kenneth Seidelmann and Leroy Elsworth Doggett, Explanatory Supplement to the Astronomical Almanac, Mill Valley, 1992, pages 581-582.
LINKS
Anonymous, The Date of Easter, Nature, Vol. 13 (24 February 1876), pp. 326-327. Reproduces Gauss's Easter algorithm.
Anonymous, To Find Easter, Nature, Vol. 13 (20 April 1876), p. 487. Still often cited.
Christoph Clavius, Romani Kalendarii a Gregorio XIII P.M. Restituti Explicatio, Rome, 1603, 680 pages (in Latin).
P. K. Seidelmann, Gregorian Calendar Ecclesiastical Rules, Explanatory Supplement 1992.
FORMULA
For both Julian and Gregorian calendars:
n = calendar year (4 digits)
m = n mod 19 = position of n in the 19-year Metonic lunar cycle
c = floor(n/100) = calendar century
q = floor(n/400) = calendar quad-century
d = c-q-2 = days to add to Julian dates to convert to Gregorian
= days to subtract from Gregorian to convert to Julian
For the Julian calendar (repeats cycle a(0) through a(18):
a(m) = days from March 21 to the JPFM (0 to 28 days)
= (19*m+15) mod 30
s = days from JPFM to next Sunday (1 to 7 days)
= 7 - ((a(m)+floor(n*5/4)) mod 7)
Note that a(m) never equals 29, so Easter Sunday never falls on April 26.
For the Gregorian calendar (repeats cycle a(0) through a(5699999):
x = (19*m+15+floor((c*17+11)/25)-q) mod 30
a(n) = days from March 21 to the GPFM (0 to 28 days)
= x-1 if (x=29) or (x=28 and m>10)
= x otherwise
s = days from GPFM to next Sunday (0 to 7 days)
= 7 - ((a(n)+floor(n*5/4)-c+q+2) mod 7)
For compatibility with Julian calendar, Gregorian a(n) never equals 29.
EXAMPLE
For year 2021: n=2021, m=7, c=20, q=5, d=13.
For the Julian calendar: a(m)=28 and s=1, so the JPFM is April 18 and Julian Easter Sunday is April 19, which corresponds to May 2 in the Gregorian calendar.
For the Gregorian calendar: x=7, a(n)=7, and s=7, so the GPFM is March 28 and Gregorian Easter Sunday is April 4, which corresponds to March 22 in the Julian calendar.
MATHEMATICA
a[n_] := Module[{c = Floor[n/100], q = Floor[n/400], m = Mod[n, 19], x}, x = Mod[19*m + 15 + Floor[(c*17 + 11)/25 - q], 30]; If[(m > 10 && x == 28) || x == 29, x - 1, x]]; Array[a, 120, 0] (* Amiram Eldar, Nov 05 2021 *)
CROSSREFS
KEYWORD
easy,nonn
AUTHOR
Robert B Fowler, Nov 04 2021
STATUS
approved