Some time ago I was called about an online calendar for a company’s portal. The need was to inform employees about public holidays for the requested year. In Greece, some of those holidays are static meaning they occur the exact same date each year, but some are based on the Orthodox Easter so they move from date to date. There are a lot of online services that can return these information, but I thought I should give it a go and try writing the Orthodox Easter calculation in C#. Saying that, I found the algorithm online and since I was there I also found the Catholic Easter algorithm.

In this post you will find the calculation for the two Christianity events only, and in a later post I will also publish the public holidays calculation.

Have in mind that since the methods return

`DateTime`

“every possible year” is not quite accurate! And besides, both algorithms have problems after year 4200. You can read more about it here: http://en.wikipedia.org/wiki/Computus

This is the Orthodox Easter calculation:

And this is for the Catholic Easter:

[…] calculating the Greek Orthodox Easter, I wrote the following method that returns a List of DateTime with all […]

[…] You can find the code that calculates Greek Orthodox Easter here: https://mycodepad.wordpress.com/2013/04/28/c-calculating-orthodox-and-catholic-easter/ […]

Any algorithm that i found in the web about Orthodox Easter has the same solution with your’s.

If the year is 2100, then with those algorithms i get 01/05/2100.

But if i check it with some online “calculators” i get 02/05/2100.

This “calculators” are

https://www.wolframalpha.com/input/?i=orthodox+easter+at+2100

https://www.eortologio.net/pasxa/etos/2100

What am i missing?

Hi pbaris!

It’s because “19 uncorrected Julian years are a little longer than 235 lunations, so the difference accumulates to one day in about 310 years. Therefore, in the Gregorian calendar, the epact gets corrected by adding 1 eight times in 2,500 (Gregorian) years, always in a century year: this is the so-called lunar correction (historically called “lunar equation”). The first one was applied in 1800, the next is in 2100, and will be applied every 300 years except for an interval of 400 years between 3900 and 4300, which starts a new cycle.”

(Source: https://en.wikipedia.org/wiki/Computus)