def self.orthodox_easter(year)
y = year
g = y % 19
i = (19 * g + 15) % 30
j = (year + year/4 + i) % 7
j_month = 3 + (i - j + 40) / 44
j_day = i - j + 28 - 31 * (j_month / 4)
j_date = Date.civil(year, j_month, j_day)
case
when year <= 1582
offset = 0
when (year >= 1583 and year <= 1699)
offset = 10
when year >= 1700
offset = (year - 1700).divmod(100)[0] + ((year - year.divmod(100)[1]).divmod(400)[1] == 0 ? 0 : 1) - (year - year.divmod(100)[1] - 1700).divmod(400)[0] + 10
end
return Date.jd(j_date.jd + offset)
end