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 = y mod 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 − 11g + c) mod 30 = (3 − 11g + 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 and g > 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 = ((y div 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 − 11g + c) mod 30 = (3 − 11g + 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 + (y div 4) − (y div 100) + (y div 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″ modp+1 7
Here, the operator modp+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 mody z ≡ y + (x − y) mod z, this can be rewritten using a standard mod operator:
e = d″ modp+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:
if e < 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 + y div 4 + 5) mod 7 [6j]
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 = −(11g − 11 × 16) mod 30 = −(11g − 176) mod 30 = (176 − 11g) mod 30 = (26 − 11g) mod 30
p′ = (26 − 11g) mod 30 [5j]
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