In 30 000 years, Easter and Christmas will coincide

You might hear “Easter is on the Sunday following the full Moon which falls on or after the Vernal equinox”. However this is slightly superficial and does not explain why the Catholic and the Orthodox Church are not in sync with the dates. I’ll summarize an approximate algorithm for finding the dates below.

Catholic Church rule [Approximation]

Start from March 21. Find the next Full Moon. Add one day. Find the Sunday. Orthodox Church rule [Approximation]

Start from March 30. Find the next Full Moon. Add one day. Find the Sunday.

I guess everyone agrees that there is something interesting going on with the Orthodox rule. The eager eyed might have spotted the issue with Catholic rule as well. The perfectionist will dislike that it’s all just an approximation. In the rest of this article presents the origins and the issues of the formulas above.

When determining the date we are concerned about: The Equinox, The Full Moon and The Calendar used.

1. The Equinox.

The Earth axis is tilted. This is why we have longer nights during winter and longer days during summer. The Equinox is the moment when the day and the night have equal length, or astronomically it is the exact moment when the sun crosses the celestial equator. The takeaway here is that the Equinox is not a full day. It is an instant (precise hour, minute, second, …).

First complication comes from the length of the year. The year is approximately 365.2425 days. We account for this fractional number by adding one extra day (February 29) during Leap Years. This means that for each non-leap year the exact time of the Equinox is approximately 6 hours later than the previous year, fixing this every leap year.

We can see the 6 hour drift in the following table:

| Year | Equinox |

+------+------------------+

| 2016 | 20 Mar 04:30 GMT |

| 2017 | 20 Mar 10:29 GMT |

| 2018 | 20 Mar 16:15 GMT |

| 2019 | 20 Mar 21:59 GMT |

| 2020 | 20 Mar 03:50 GMT |

We can also see that the Equinox of 2020 is 40 minutes earlier than the Equinox of 2016. That is because the tropical years (distance between 2 vernal equinoxes) is not constant. Conclusion: the Equinox can occur on different days depending which year it is.

Second complication comes from time zones. March 20, 16:15 (UTC) will be March 21, 3:15 AM in Sydney, Australia (UTC +11), so the Equinox can occur on a different day, depending on where we are in the world.

2. The Full Moon

Long story short the full moon cycle is not the same each month. That is because the Moon moves around the Earth while the Earth moves around the Sun and because the Earth’s orbit is elliptical instead of circular. This means a Full Moon Cycle is anywhere between 29.18 and 29.93 days.

This was addressed by using Lunar Calendars which model these constraints.

3. The Calendar

There are two calendars that are important for our discussion, the Julian and the Gregorian Calendar. Historically, the Julian Calendar was introduced in year 46 BC and was replaced by the more accurate Gregorian Calendar in 1582 AD. The difference is that in the Julian Calendar the year has 365.25 days. Every year divisible by 4 is a leap year. In the Gregorian Calendar the year is 365.2425 days. The rule here is: if a year is divisible by 4 it is a leap year. However, if the year is divisible by 100, it is not a leap year. Exception: a year divisible by 400 it is still a leap year. For example, the years 1700, 1800, and 1900 are not leap years, but the year 2000 is.

Over a period of 100 years, the Julian Calendar drifts by 0.78 days, while the Gregorian Calendar drifts by 0.03 days. This means every 100 years there is a 0.75 day drift between the two calendars. As of 2016 this accumulated drift is 13 days. For example March 1 2016 in Gregorian Calendar is going to be March 14 2016 in the Julian Calendar.

This drift occurs in the Lunar Calendar as well, and it is 4–5 days.

Western Church approach

To determine the date of the Easter, the church had to fix all the above. Equinox and time zone issues were addressed by fixing the Vernal Equinox to March 21. The Full Moon issue was addressed by using the Ecclesiastical full moon. The Calendar issue was fixed by using the Gregorian Calendar.

Examples (Easter 2016 is March 27, Easter 2017 is April 16):

2016

March 21 — Equinox

March 23 — First Full Moon (>= March 21)

March 27 — First Sunday (> March 23)

2017

March 21 — Equinox

April 11 — First Full Moon (>= March 21)

April 16 — First Sunday (> April 11)

Eastern Church approach

The Eastern Church also fixed Equinox to be March 21 and is following the lunar calendar, however, it is using the Julian Calendar. This means:

1. There is a 13 day difference in the Solar Calendar. Hence March 21 becomes April 3 (equinox date).

2. There is a 4 day difference in the Lunar Calendar. Hence March 30 becomes April 3

Examples (Easter 2016 — May 1, 2017 — April 16, 2018 — April 8):

2016

March 21 — Equinox

April 3 — Adjusted Equinox

April 22 — Full Moon

April 26 — Adjusted First Full Moon

May 1 — First Sunday

2017

March 21 — Equinox

April 3 — Adjusted Equinox

April 11 — Full Moon

April 15 — Adjusted Full Moon

April 16 — First Sunday

2018

March 21 — Equinox

March 31 — Full Moon

April 3 — Adjusted Equinox

April 4 — Adjusted Full Moon

April 8 — First Sunday

We can see that in 2018 the full moon actually happens before April 3, but the lunar calendar offset shifts it to April 4 which is accounted for. This means that we have to start looking for the full moon 4 days before April 3, which is March 30.

The JavaScript implementation

The following implementations are based on the formulas found here and here and accounts for the lunar calendar rules:

Catholic Easter:

Orthodox Easter:

Final thoughts:

Since the Julian Calendar will keep drifting over years, around year 32600 AD, the Orthodox Easter might coincide with the Christmas.

Acknowledgements:

I want to thank Eduard Kalinicenko for figuring out how the Julian Calendar influences the Ecclesiastical full moon. Thanks Andrei Ursu and Ciprian Bejenaru for the algorithm idea. Also, thanks all my Facebook friends for promoting my discussion.