Computing the Julian Easter, Part Two
What we would like to do
now is to get an algorithm using modular arithmetic to compute the date of
Easter. We will then be able to
eliminate the use of the tables!
Let’s look at the
Dominical letter first. We will turn the
possible letters A, B, .., G into integers modulo 7, as usual. We will assign 1 to A, 2 to B, and 0 to
G. We will call this variable N.
Now the dominical letter regresses
one day with each year, unless it is a leap year. Then it regresses two days (at least for the part of the
year that contains Easter). So for year
AD Y, we have had Y-1+Y/4 regressions (we are using Duncan’s convention that
Y/4 is the integer quotient with the remainder thrown away). Now it turns out that Jan 1, AD1 is a Saturday,
and so its dominical letter is B. That
is, N=2 for the year AD 1. We then have
an equation for year Y:
N=2-(Y-1+Y/4) (mod 7).
But this simplifies to
N=3-Y-Y/4(mod 7).
Try this on our familiar
examples: For 1066 we get
N=3-1066-266=3-1332=3-2=1 (mod 7). The letter is A.
For 1500, we get
N=3-1500-375=3-1875=3-6=4 (mod 7). The letter is D.
We will now compute the epact
E, the age of the moon on January 1, for any Golden number G. If we look at our earlier table, we have the
successive addition of 11’s, where we start with E=0 at G=3. This gives us
E=11(G-3)=11G-33=11G-3 (mod 30).
We now will compute R the
day of March for the first possible date for Easter. Day of March is a convenience; we will
pretend that April is part of March! We
get the following refined version of the Paschal table I gave earlier. This time we will put it in chronological
order, instead of in Golden Number order.
The Paschal Table, Final Version
Date of Paschal New moon |
Golden Number G |
Date of Paschal Full Moon |
“Day of March” R for first pos. Easter |
Epact E = 11G-3 Moon on Jan. 1 |
Sum R+E |
Paschal moon number in year |
March 8 |
XVI |
March 21 |
22 |
23 |
45 |
3 |
March 9 |
V |
March 22 |
23 |
22 |
45 |
3 |
March 11 |
XIII |
March 24 |
25 |
20 |
45 |
3 |
March 12 |
II |
March 25 |
26 |
19 |
45 |
3 |
March 14 |
X |
March 27 |
28 |
17 |
45 |
3 |
March 16 |
XVIII |
March 29 |
30 |
15 |
45 |
3 |
March 17 |
VII |
March 30 |
31 |
14 |
45 |
3 |
March 19 |
XV |
April 1 |
33 |
12 |
45 |
3 |
March 20 |
IV |
April 2 |
34 |
11 |
45 |
3 |
March 22 |
XII |
April 4 |
36 |
9 |
45 |
3 |
March 23 |
I |
April 5 |
37 |
8 |
45 |
3 |
March 25 |
IX |
April 7 |
39 |
6 |
45 |
3 |
March 27 |
XVII |
April 9 |
41 |
4 |
45 |
3 |
March 28 |
VI |
April 10 |
42 |
3 |
45 |
3 |
March 30 |
XIV |
April 12 |
44 |
1 |
45 |
3 |
March 31 |
III |
April 13 |
45 |
0 |
45 |
3 |
April 2 |
XI |
April 15 |
47 |
28 |
75 |
4 |
April 4 |
XIX |
April 17 |
49 |
26 |
75 |
4 |
April 5 |
VIII |
April 18 |
50 |
25 |
75 |
4 |
We have filled in the
entries of our table in the old-fashioned way.
The first possible date for Easter is the day after the paschal full
moon. The amazing thing is this: R+E is always the same, modulo 30. This is not that surprising, when we realize
that when we add in the age of the moon on Jan. 1 we are really just moving one
(or two) full lunar months, plus the half month to get to the full moon. The best way to write this is as R=[22+(53-E)](mod
30). This emphasizes that the earliest
possible Easter date is March 22, and then we’re adding a bit more.
So here is our algorithm
so far for the Julian Easter, for a date in AD year Y.
1.
G=1+Y(mod 19) -- the Golden Number, or place in the
Metonic cycle.
2.
N=3-Y-Y/4 (mod 7) –
the Dominical letter, the letter label on Sundays.
3.
E=11G-3 (mod 30) – the
epact, the age of the moon on January 1st.
4.
R=22 + [(53-E) (mod
30)] – the first possible day in March that Easter could be.
At this point, we need to
decide whether the day R is a Sunday or not.
We could look at a calendar – if not, just take the next Sunday.
But we can do this with a
computation too! What calendar label
does the Rth of March have?
This is actually easy to compute.
March 1 always has the label D – just count; of course this translates
into the integer 3, modulo 7. But then
there are R-1 more days to get to the Rth. This means that this calendar label is given by the formula
C=4+R-1=3+R (mod 7).
If C=N, then we are
happy, because the Rth is
actually a Sunday. If C>N, we need
only add N-C days to R to get to Easter.
If C<N, we need only add 7+N-C days to get to Easter. We record both of these in one
equation. The day of March that is
Easter must be R+[7+N-C (mod 7)].
We can thus add two more
equations to our algorithm:
5.
C = 3+R (mod 7) – the calendar
label on the first available date for Easter.
6.
S = R + 7+N-C (mod 7),
the actual date of Easter in “March”.
Let’s use the algorithm
to compute Easter Day in the year 1136.
1.
G=1137 (mod 19) = 16.
2.
N=3-(1136+1136/4)=3-(1136+284)=3-6=-3=4
(mod 7)
3.
E=11(16)-3=173=23 (mod
30)
4.
R=22+(53-23) = 22 (mod
30)
5.
C=3+22=4 (mod 7)
6.
S=22+7+4-4=22 (mod 7).
Easter Sunday in this
year is March 22 – incidentally, this is an example of the earliest possible
date for Easter.
Let’s use the algorithm
to compute Easter Day in the Julian year 1641.
1. G=1642=8 (mod 19).
2. N=3-(1642+1642/4)=3-(2051)=3 (mod 7)
3. E=11(8)-3=85=25 (mod 30).
4. R=22+(53-25)=50.
5. C= 3+50 = 4 (mod 7).
6. S=50+7+3-4 = 56 (mod 7),
Easter Sunday in this year
is April 25th – incidentally, this is an example of the latest
possible date for Easter.