Files
greek_easter/lib/greek_easter.rb
2010-03-05 04:04:27 +02:00

24 lines
542 B
Ruby

class GreekEaster
def self.at(year = nil)
date = self.easter(year)
return "In the year #{date.year}, the Greek Easter is on #{date.strftime("%d %B")}.";
end
def self.easter(year = nil)
year = Time.now.year if year.nil?
year = year.to_i if year.is_a?(String)
a = year % 19
b = year % 4
c = year % 7
d = (19 * a + 16) % 30
e = (2 * b + 4 * c + 6 * d) % 7;
easter = 3 + d + e;
if easter <= 30
Time.local(year, 4, easter)
else
Time.local(year, 5, (easter - 30))
end
end
end