Easter Day is the Sunday after the full moon which falls on or after the spring equinox in the northern hemisphere. The date of the equinox is taken as 21 March, and tables are used which follow the mean age of the moon, rather than the actual observed phases.

This definition of the date of Easter, though probably not the earliest, was likely already in use around the time of the Council of Nicaea in 325. It derives from the date of the Jewish festival of Passover, which falls on the first Full Moon of the spring. From early on, the Church used tables for the lunar calendar rather than actual observation each year. The tables formulated in the 6th century became normative and continued in use long after their inaccuracy was apparent until new ones were introduced by Pope Gregory XIII in 1582, and adopted in Britain in September 1752.

The tables which appear in the Book of Common Prayer can be used to determine the date of Easter. These were compiled by the then Astronomer Royal, the Revd James Bradley (1673–1762) and annexed to the Calendar (New Style) Act 1750, by which the Gregorian Calendar was adopted in Britain. The effect of them is mathematically identical to the more complicated tables of epacts introduced by the Gregorian reform, and devised by Luigi Lilio or Giglio, known as Aloysius Lilius (c.1510–76), and refined by Christopher Clavius (1538–1612).

Underlying these tables is a relatively simple algorithm which is described here. This description assumes a limited mathematical knowledge, particularly of integer division and remainders, or modulo arithmetic. The algorithm applies to any year since the introduction of the Gregorian Calendar, which in Britain was in September 1752.

We refer to the year number as *y*, and use it to calculate the
Golden number, *g*:

g=ymod 19 + 1[1]

The moon waxes and wanes over a period of 29 and a bit days, beginning with each New Moon and waxing through to the Full Moon and then waning back until it disappears and the next New Moon appears. Although this period is the origin of the month, our modern western months no longer fit the lunar pattern, whilst the year is entirely independent and based on the earth’s revolution around the sun. So the phases of the moon, the dates of New Moons and Full Moons, drift across the calendar. Every 19 years the cycle comes round (more or less), and then the dates repeat themselves across the next 19 years. So we can list all the phases and dates for each of these 19 years, and if we know which of the 19 we are in, then we know the dates of the various phases of the moon for that year.

The *Golden number* is a number from 1 to 19 that tells us which
of these 19 years applies. Nineteen-year lunar cycles, to which Golden
numbers refer, were known about long before the Christian era, and were
used by – among others – Cyril of Alexandria when he
calculated a table of Easter dates covering the years 437–531 (a
period of 95 years, which is 5 cycles of 19 years). In 525, Dionysius
Exiguus extended these tables, making 532 the first year of a new
cycle, and at the same time defining it as the year 532. As the cycle
underlying the tables itself lasts 532 years (because 532 = 19 ×
28, the product of the lengths of the lunar cycle of 19 years and the
solar cycle of 28 years), this means that the cycle that was just
ending in 531 can be conveniently backdated to begin in the year we
call 1 BC. So
1 BC is year 1 of the cycle, and
the following year AD 1 is year 2,
and so on. AD 18 is year 19, and
then the Golden numbers begin again,
with AD 19 as 1. It can be seen
that the Golden number for any year AD
is 1 more than the remainder when the year number is divided by 19.

It is convenient to use a simple numbering scheme for the relevant
days of the year. In this scheme, days are numbered beginning with
22 March. So day 1 is 22 March, day 2 is 23 March, day 3 is 24
March and so on, through day 11 (1 April), day 28 (18 April),
and on to day 35 on 25 April. Additionally, day 0 is 21
March. Unless specifically mentioned, when dates are calculated it
is these *day numbers* that are being referred to.

These 36 days are the only dates needed for the calculation of Easter. The calculated full moon always falls between day 0 (21 March) and day 28 (18 April), and Easter Day is the following Sunday, which is always between day 1 (22 March) and day 35 (25 April).

The *day number* notation is just a convenience, and saves
having to say each time “expressed as the number of days
after 21 March”.

From the Golden number we can calculate the date of the Paschal full moon, the full moon which Easter is the Sunday after. This is done in several stages, and is first calculated for an initial time period, around the end of the sixteenth century when the Gregorian calendar was first introduced. A correction is subsequently applied to compensate for the inaccuracies that accumulate over a long period of time.

Underlying the calculations is a calendar of lunar months, each beginning at the New Moon and continuing until the eve of the next New Moon. These lunar months are alternately 30 and 29 days long. 12 lunar months contain 6 30-day months and 6 29-day months, a total of 354 days, which is 11 days shorter than the solar year of 365 days. So in each year of the Golden number cycle, each lunar month begins 11 days earlier than in the previous solar year.

By inspection of the tables, when the Golden number is 3 and the
correction is 0 there is a New Moon on 8 March, and a Full Moon on
the 14th day, 21 March. The next year, when the Golden number is
4, the Full Moon will fall 11 days earlier; and the following
year, when the Golden number is 5, the Full Moon will fall
11 × 2 = 22 days earlier. In general,
in any year the Full Moon will fall
11 × (*g* − 3)
days *earlier* than 21 March. Whenever this is before
21 March a further lunar month of 30 days is intercalated to give
a date on or after 21 March.

The long-term correction, *c*, is also added in, and has the
effect of moving the calculated full moon to a date later in the
calendar.

The date of the Paschal full moon is the day number *p*. We
calculate day number *p*′ and then adjust it slightly to
get *p*.

p′= (−11( g− 3) +c) mod 30= (33 − 11 g+c) mod 30= (3 − 11 g+c) mod 30

The calculated *p*′ is a day number between 0 and 29.

A small adjustment is made to ensure that the date of the Paschal Full Moon, and therefore the date of Easter, does not fall too late.

if ( p′ = 29) or (p′ = 28 andg> 11) then

p=p′ − 1

else

p=p′[2]

The calculated *p* is a day number between 0 and 28.

In the Julian Calendar, the Paschal Full Moon always falls between
day 0 (21 March) and day 28 (18 April), and the latest
possible date for Easter Day is therefore day 35
(25 April). The Gregorian calculation of *p*′,
however, may put the Full Moon on day 29 (19 April), and that
would make it possible for Easter Day to fall as late as 26
April. So, to maintain the ancient tradition, if *p*′
is 29, all the lunar months in the corresponding calendar year are
shifted to start one day earlier than they would do otherwise. The
Full Moons are therefore calculated to fall a day earlier, and the
Paschal Full Moon will fall on day 28 (18 April).

The calendar of moons also avoids having New Moons, and therefore
Full Moons, falling on the same date in the solar calendar in a
different year in the same 19-year cycle. But if under the
previous adjustment the lunar months are moved to start a day
earlier, some of these dates will coincide with those of lunar
months in other years of the 19-year cycle. To avoid this, in
years when the unadjusted calculation puts *p* on a date that
will clash with the adjusted *p*, then again all the lunar
months in that calendar year are shifted to start one day earlier
than they would do otherwise. These Full Moons too are therefore
calculated to fall a day earlier, and the Paschal Full Moon will
then fall on day 27. By inspection, these clashes
of *p*′ and *p* both equalling 28 only happen
when *g* is more than 11. So when *g* is more than 11
and *p*′ is 28, the value of *p* is reset to 27,
and there are no further conflicting dates.

The calculation of *p*′ and *p* mirrors
Table III in the preliminary pages of the Book of Common
Prayer. The adjustment of *p*′ to *p* can be found
in the last three lines of that table.

The correction *c* must be added in to this equation as time
elapses. *c* has two components called the solar
correction, *s* (given the traditional sun symbol ☉ in
some documents), and the lunar correction, *l* (given the moon
symbol ☽ in some documents).

s= (y− 1600) div 100 − (y− 1600) div 400[3]

The 19-year cycle fits the Julian Calendar, in which there is
always a leap year every fourth year. But in the Gregorian
Calendar, first introduced in 1582, three leap years are
suppressed in every 400 years, whenever the year number is
divisible by 100, but not by 400. The *solar correction*
keeps the calculation in step with the solar Gregorian calendar by
moving the calculated phases of the moon one calendar
day *later* each time the leap year is suppressed. After
1582, this correction increases by 1 in 1700, 1800, 1900, but not
in 2000 (which was a leap year), and in 2100, 2200, 2300, but not
in 2400 (which will be a leap year) and so on.

l= ((ydiv 100 − 14) × 8) div 25[4]

It was said above that the lunar cycle repeats every 19 years
“more or less”. The cycle of 19 years contains 19
× 365.25 days = 6939.75 days, but 235 cycles of the moon
(or *lunations*) is 6939.68818 days. The difference is
0.06182 day or 1 hour 29 minutes shorter, which accumulates to a
whole day after 307.3439 years. After this the phases of the moon
will fall a day *earlier* than calculated.

The *lunar correction* makes an adjustment 8 times in 2500
years, an average of once every 312.5 years, and arranges that the
extra days are only added at the end of a century. Starting at
1400, the first adjustment is in the year 1800, and then every 300
years in 2100, 2400, 2700, 3000, 3300, 3600 and 3900. Then the
cycle begins again with a 400-year wait until 4300, and then 7
gaps of 300 years.

The difference between 1 day in 307.3439 years and 1 day in 312.5 years will amount to a whole day only after 18,627 years, so not something that needs to be worried about yet.

c= s−l

The combined effect of the solar and lunar corrections
is *s* − *l*: each increase in the solar
correction causes the calculated date to be one day later in the
calendar; and each increase in the lunar correction causes the date to
be one day earlier.
As *s* increases by 3 every 400 years (which is 75 every
10,000 years), and *l* increases by 8 every 2500 years (which
is 32 every 10,000 years), there is overall a slow increase in
*s* − *l*, meaning that the dates of the
phases of the moon gradually drift down the calendar and occur on
later dates.
Sometimes an increase in *s* is cancelled out by a
simultaneous increase in *l*, as happened in 1800 and will
happen in 2100. The sum can even decrease, when *l* increases
but *s* does not, as will happen in 2400.

*s* − *l* was 0 from 1582, then 1 from
1700, 2 from 1900, 3 from 2200. These are the values in
Table II in the preliminary pages of the 1662 Book of Common
Prayer.

The equation for *p*′ can now be rewritten:

p′= (3 − 11 g+c) mod 30= (3 − 11 g+s−l) mod 30

That is,

p′ = (3 − 11g+s−l) mod 30[5]

Easter Day is the Sunday after *p*.
To determine the date of that following Sunday, we first calculate the
‘Dominical number’, *d*, which indicates which day of
the week 1 January falls on:

d= (y+ (ydiv 4) − (ydiv 100) + (ydiv 400)) mod 7[6]

Since ancient times, days of the week have followed an unbroken
sequence independently of either the solar or lunar calendars. It is a
common observation that a particular date slips one day down the week
each year, except in a leap year when it slips two days. So for a given
start date the slippage in any year is the year number plus the number
of leap years. We can ignore whole weeks, i.e., multiples of 7 days,
since that represents a slippage to the same weekday. The formula for
the ‘Dominical number’ expresses this: it is the remainder
when dividing by 7 of the sum of the year number *y* and the
number of leap years.

Additionally, a constant must be added to align this with the actual
days of the week. However, it turns out that in the Gregorian Calendar
this constant is 0
(1 January AD 1 in the
proleptic Gregorian Calendar is a Monday; so that in the year
1, *d* is 1, meaning 1 January has slipped one day down the
week), and so can be ignored.

If *d* is 0, 1 January is a Sunday; if *d* is 1,
1 January is a Monday; if *d* is 2, 1 January is a
Tuesday; and so on.

The calculation of *d* mirrors Table I in the preliminary
pages of the Book of Common Prayer.

The word *proleptic* refers to backdating the calendar to a
period before it came into use. So the *proleptic Gregorian
Calendar* means referring to a date before 10 October 1582 using
the rules of the Gregorian Calendar.

From *d*, the weekday of 1 January, we can
calculate *d*′, the weekday of day 0 (21 March):

d′ = (d+ 2) mod 7

In AD 1, 21 March was a
Wednesday (in the proleptic Gregorian Calendar), meaning that
when *y* is 1, *d*′ is 3. The constant 2 is added in to
make this alignment.

If *d*′ is 0, 21 March is a Sunday;
if *d*′ is 1, 21 March is a Monday;
if *d*′ is 2, 21 March is a Tuesday;
and so on.

We can now deduce *d*″, the day number of the first Sunday
after day 0:

d″= 7 − d′= 7 − ( d+ 2) mod 7

*d*″ is the numerical equivalent of the *Dominical
letter* in the Book of Common Prayer. This is a letter in the range
A to G, set against every date in the Calendar and which marks which
dates are Sundays (“the Lord’s Day”,
hence *Dominical*) in any particular year.
Here, the calculation is aligned not with 1 January, but with days
after 21 March. This does not, however, affect the alignment of
Dominical letters in the Calendar:
if *d*″ is 1, the Dominical letter is D; and so on like
this:

d″:1 2 3 4 5 6 7 letter:D E F G A B C

The calculation of the date of Easter only concerns March and April, so
leap years do not have to be worried about: the calculation of *d*
and *d*′ has already included the possible occurrence of 29
February. In the standard 1 January-based calculation, as found in
the BCP and elsewhere, a leap year has two Dominical letters, one used
in January and February, and the second from March to December. The
different letter used to mark Sundays in January and February of a leap
year is not relevant to finding the date of Easter.

*d*″ is the Sunday after day 0, and *e* (Easter Day)
is the same day or one of the following Sundays. *e*
and *d*″ differ only by a multiple of 7, so we must keep
adding 7 to *d*″ until we get a day number larger
than *p*.
In mathematical language *d*″ and *e*
are *congruent* and we can express *e* by
recalculating *d*″ with an offset of *p* + 1.

e=d″ mod_{p+1}7

Here, the operator mod_{p+1} is used, meaning the answer
is calculated with an offset of *p* + 1, so that it lies
in the range *p* + 1 to *p* + 7, rather
than 0–6.

Since *x* mod_{y} *z* ≡
*y* + (*x* − y) mod *z*, this can be
rewritten using a standard mod operator:

e= d″ mod_{p+1}7= p+ 1 + (d″ − (p+ 1)) mod 7= p+ 1 + (7 − (d+ 2) − (p+ 1)) mod 7= p+ 1 + (4 −d−p) mod 7

That is,

e=p+ 1 + (4 −d−p) mod 7[7]

All that remains is to express this as a calendar date, rather than as a day number. Easter Day is:

ife< 11 then

(e+ 21) March

else

(e− 10) April

Before the introduction of the Gregorian Calendar, the Julian Calendar had been in use since before the time of Christ. The tables of Dionysius Exiguus, devised in AD 525, are used to determine the date of Easter. This leads to a very similar calculation, except that some of the formulae are slightly simpler than in the Gregorian Calendar.

First, every fourth year is a leap year even at the end of a century. So
the formula for *d* is simplified to

d= (y+ydiv 4 + 5) mod 7[6 _{j}]

The constant 5 aligns the cycle with reality:
in AD 1 (when *y* = 1),
1 January is a Saturday in the
proleptic
Julian Calendar, so the year must have the Dominical letter B,
and so *d* must be 6.

(Although the Julian Calendar was introduced in 45 BC it was incorrectly followed during the first few decades. The error was put right by the Emperor Augustus who ordered that the next three leap days be omitted, so that the corrected calendar did not come into use until 1 March AD 4. It is usual to backdate the corrected Julian Calendar before March AD 4 as a proleptic Julian Calendar.)

Similarly, the solar correction, *s*, which adjusts for the
Gregorian change to leap years, is always 0.

Secondly, because the 19-year cycle of the phases of the moon against the
solar calendar is assumed to hold for all time, the lunar
correction, *l*, is also 0.

The calculated Full Moons must also be aligned to the table of moons used
in the Julian Calendar. By inspection, there is a New Moon on 8 March
(and therefore a Full Moon on 21 March) when the Golden number is 16. So
the formula for *p*′ becomes

That is,

p′ = −11( g− 16) mod 30= −(11 g− 11 × 16) mod 30= −(11 g− 176) mod 30= (176 − 11 g) mod 30= (26 − 11 g) mod 30

p′ = (26 − 11g) mod 30[5 _{j}]

Finally, it is worth noting that *p*′ is never 29, and 28
occurs when *g* is 8, so that *p* is always the same
as *p*′.

All other parts of the calculation remain unchanged.

The Ecclesiastical Calendar: Its Theory and Construction; Samuel Butcher; Hodges, Foster and Figgis; Dublin, 1877

Calendar, Encyclopaedia Britannica, 1911 edition, volume 4, online at gutenberg.org

Gregorian Reform of the Calendar: Proceedings of the Vatican Conference to Commemorate its 400th Anniversary 1582 – 1982; edited by G V Coyne SJ, M A Hoskin, and O Pedersen; Pontificia Academia Scientiarum, 1983, and online at archive.org

Calendrical Calculations; Nachum Dershowitz and Edward M Reingold; Cambridge University Press, 1997, 2001, 2008, 2018, details at calendarists.com; ISBN 978-1-1076-8316-7

Mapping Time: The Calendar and its History; E G Richards; Oxford University Press, 1998, 2001; ISBN 978-0-19-850413-9

The Easter Computus and the Origins of the Christian Era; Alden A Mosshammer; Oxford University Press, 2008; ISBN 978-0-19-954312-0

This page is part of the oremus Almanac by Simon Kershaw. The summary of the calculation of Easter was first written in 1987, and revised in 1993, 1999 and 2021. almanac.oremus.org/easter/computus