From: kerryg@rice.edu (Kerry Go) Newsgroups: sci.math Subject: Easter algorithm Date: 11 Mar 91 07:40:38 GMT Several years ago, I came across the following algorithm and found it interesting. A = year mod 4 B = year mod 7 C = year mod 19 D = (19C + M) mod 30 E = (2A + 4B + 6D + N) mod 7 In the 20th century, M = 24 and N = 5. Easter is on the (22+D+E)th of March or the (D+E-9)th of April. Has anyone seen this before? If so, (1) Is there a book containing this algorithm? If so, what is the name and author of the book? I don't know the values for M and N other than those for this century. (2) Is there a proof showing why this algoithm works (or doesn't)? ============================================================================== From: ernie@neumann.une.edu.au (Ernest W Bowen) Newsgroups: sci.math Subject: Re: algorithm for date of easter Date: 6 Jul 93 15:18:54 GMT Summary: :Z?~?~?An algorithm for date of easter In article <212cfe$1f3@salyko.cubenet.sub.org>, hadi@salyko.cubenet.sub.org (Hans Dimbeck) writes: > > > Who can help me. > I need a method to calculate the date of easter. > > Thanks Hans. According to H.V. Smith in "Mathematical Spectrum," 11 (1978/79), 23-24, the following rule appeared in Butcher's Ecclesiastical Calendar, 1876. To find the date of Easter Sunday for year y: Divide by Quotient Remainder --------------------------------------------------- y 19 j y 100 k h k 4 m n k + 8 25 p k - p + 1 3 q 19j + k - m - q + 15 30 r h 4 s u 32 + 2n + 2s - r - u 7 v j + 11r + 22v 451 w r + v - 7w + 114 31 x z Here x is the number of the month ond 1 + z is the day of that month upon which Easter Sunday falls in the year y. The following csh shell script does these calculations and echoes x and 1 + z. Some signs appear to be wrong because in @ assignments + and - are right-associative. --- # With argument y, this echoes the month-number and day-number for # Easter Sunday in year y; e.g. easter 1992 displays 4 19. @ j = $1 % 19 @ k = $1 / 100 @ h = $1 % 100 @ m = $k / 4 @ n = $k % 4 @ p = ($k + 8) / 25 @ q = ($k - $p - 1) / 3 @ r = (19 * $j + $k - $m + $q - 15) % 30 @ s = $h / 4 @ u = $h % 4 @ v = (32 + 2 * $n + 2 * $s - $r + $u) % 7 @ w = ($j + 11 * $r + 22 * $v) / 451 @ xp = $r + $v - 7 * $w - 114 @ x = $xp / 31 @ d = $xp % 31 + 1 echo ' ' $x $d ==============================================================================