Calculation of Easter Sunday in the Julian calendar

By definition, Easter Sunday is the first Sunday after an ecclesiastical (Paschal) full moon (i.e. it’s the first full moon after 20 March). So, if a full moon occurs the very next day (Saturday the 21st), then Easter could theoretically be celebrated as early as the 22nd of March. These ecclessiastical full moons are derived from an ancient calculation that gives an approximation of the phases of the Moon. Over a nineteen year span, these lunar phases all roughly settle into the same calendar days. This cycle is called the Metonic cycle (also, the lunar cycle) and the year’s location in the order of this cycle gives us the “Golden Number”. In the following calculations, only integers are counted, the '%' character indicates that the remainder of the division is the only part to be used.

Calculation formula: golden_number = 1 + year % 19

All lunar cycles are about 29.5 days in length (a lunation, or a synodic month), and these lunar cycles fit twelve times into a year (29.5 x 12 = 354), which comes up 11 days short of the solar year. Since decimal numbers weren’t used in the Middle Ages, lunar lengths alternated between 29-day (empty month) and 30-day (full month) lengths. With the alternation between six empty and six full months, the year’s total comes out to the same amount of 354 days (6 × 29 + 6 × 30). An epact was used to fix this deficiency. Epacts measure how old the phase of the moon is from a specific date (almost always 22 March, the ecclesiastical start of spring) and average out to 11 days. Now, looking at the calculations below, we need to assume all months are 30 days in length. Until one of the epacts exceeds 30, subtract 30 and continue as usual in the next month. What you’d find after doing this for 19 years is that the difference in the age of the moon results in 209 days (19 × 11 = 209). In order to get this number divisible by 30, once every 19 years an extra day is inserted (Latin: saltus lunae) which brings it all back into alignment. Now, the age of the moon has come full circle, and both solar and lunar years can start the cycle anew.

Calculation formula: epact = (11 × (golden_number - 1)) % 30
or, expressed differently: epact = 11 × (year % 19)) % 30

The above is a calculation for the Alexandrian epact, which expresses the age of the lunation on 22 March. This epact was used by the computists Dionysius and Beda the Venerable (Quae in circulo decemnovennali adnotatae sunt epactae, lunam quota si in XI cal. Apriles). Now, we can uniquely assign an epact to each Golden Number and make the following table:

Golden number 12345678910111213141516171819
Epact 0112231425617289201122341526718

The epacts were originally displayed as Roman numerals, and because they didn’t have a character for zero, they used either an asterisk or wrote ‘null’ (nullae). Notice how the epact grows by eleven (0 + 11 = 11, 11 + 11 = 22, etc), but when it breaks 30, we subtract 30 and carry on (22 + 11 = 33 - 30 = 3). It’s not until we reach the end of the cycle that twelve is added, (18 + 12 = 30), which allows us to subtract 30 and start afresh. It is this way that the Alexandrian epacte was able to get these nineteen values with precision.

If we know the Alexandrian epact, it is no longer a problem to determine the ecclesiastical (Paschal) full moon, because of how it uses 22 March as the basis of the calculation. This makes the calendar date easy to calculate:

for epact 0 - 15: full_moon_date = 36 - epact
for epact 16 - 29 (actually only 17 - 28): full_moon_date = 66 - epact

If the result is a number greater than 31, then the ecclesiastical full moon (Paschal full moon) won’t begin until April. To solve this, we can subtract 31 from the result to get the April date. We can take this further by extending the previous table to include dates of the calculated Paschal full moon:

Golden number 12345678910111213141516171819
Epact 0112231425617289201122341526718
Date Apr 5Mar 25Apr 13Apr 2Mar 22Apr 10Mar 30Apr 18Apr 7Mar 27 Apr 15Apr 4Mar 24Apr 12Apr 1Mar 21Apr 9Mar 29Apr 17

As mentioned above, the earliest possible date for the ecclesiastical full moon is 21 March (Golden Number 16) and if it’s a Saturday, that would make the next day Easter Sunday. And while that makes the earliest possible Easter date 22 March, the last possible date is 25 April. This is a full lunation away from the ecclesiastical start of spring plus 7 more days to the next Sunday if the full moon happens to occur on a Sunday. Because the ecclesiastical full moon occurs between 21 March and 18 April, there are only 29 possible dates, of which 19 days are occupied, because the Alexandrian epact only allows 19 of them to be made possible before the cycle refreshes. All that remains now is to determine how many days of the week to each full moon, in order to determine when the following (Easter) Sunday will fall. The following formula can be used in the Julian calendar to accomplish this (as always: only count whole numbers!):

day_of_week = (year + year / 4 + full_day) % 7
The number 0 is Sunday, 1 is Monday, and so on until 6, which is Saturday.

The calendar date of Easter Sunday in the Julian calendar is then easy to obtain:

Easter_Sunday = full_moon_date + (7 - day_of_week)
if we get a number greater than 31, it’s an April date - in this case, it is then necessary to subtract 31; if not, it’s a March date

The above calculations only apply to the old Julian calendar where calculating Easter Sunday is much easier than in our current Gregorian calendar! The end result is the calendar date of Easter Sunday in the Julian calendar. If you want to determine when Easter is celebrated according to the Julian calculation in our Gregorian calendar, you need to add the difference between the days between the different calendars. In the 21st century, this is a 13 day difference than needs to be accounted for. In the Julian calendar, the calendar dates are repeated in each row after 28 years (7 × 4, 7 days a week, with a leap year every fourth year). This gives an unrelated number with 19 possible epacts. So, the Easter dates in the Julian calendar are repeated in each row after 532 years (19 × 28). This cycle is sometimes called the Dionysian Period, or by its Latin name cyclus paschalis.