Hi,
I would like the Date class to be extended by this:
require “date”
class Date
class <<self
def easter_western year
# This is after Donald E. Knuth and it works for both
# Julian (before 1583) and Gregorian (after 1582) calendars.
g = year%19 + 1 # golden number
c = year/100 + 1 # century
x = (3c/4) - 12 # corrections
z = (8c+5)/25 - 5
d = 5year/4 - x - 10 # March((-d)%7)th is Sunday
e = (11g + 20 + z - x) % 30 # moon phase
e += 1 if e == 25 and g > 11 or e == 24
n = 44 - e # full moon
n += 30 if n < 21
month = 3
day = n+7 - (d+n)%7
if day > 31 then
month += 1
day -= 31
end
civil year, month, day
end
alias easter easter_western
end
end
I tested it with all easter date tables I found on the web
in German, English and French.
Happy Easter!
Bertram