class Easter
Public Class Methods
ascension_day(some_year=Time.now.year)
click to toggle source
Determines the date of Ascension Day for a given year.
# File lib/easter.rb, line 91 def self.ascension_day(some_year=Time.now.year) easter(some_year) + 39 end
ash_wednesday(some_year=Time.now.year)
click to toggle source
Determines the date of Ash Wednesday for a given year.
# File lib/easter.rb, line 85 def self.ash_wednesday(some_year=Time.now.year) easter(some_year) - 46 end
easter(some_year=Time.now.year)
click to toggle source
# File lib/easter.rb, line 27 def self.easter(some_year=Time.now.year) golden_number = (some_year % 19) + 1 if some_year <= 1752 then # Julian calendar dominical_number = (some_year + (some_year / 4) + 5) % 7 paschal_full_moon = (3 - (11 * golden_number) - 7) % 30 else # Gregorian calendar dominical_number = (some_year + (some_year / 4) - (some_year / 100) + (some_year / 400)) % 7 solar_correction = (some_year - 1600) / 100 - (some_year - 1600) / 400 lunar_correction = (((some_year - 1400) / 100) * 8) / 25 paschal_full_moon = (3 - 11 * golden_number + solar_correction - lunar_correction) % 30 end dominical_number += 7 until dominical_number > 0 paschal_full_moon += 30 until paschal_full_moon > 0 paschal_full_moon -= 1 if paschal_full_moon == 29 or (paschal_full_moon == 28 and golden_number > 11) difference = (4 - paschal_full_moon - dominical_number) % 7 difference += 7 if difference < 0 day_easter = paschal_full_moon + difference + 1 if day_easter < 11 then # Easter occurs in March. return Date.new(y=some_year, m=3, d=day_easter + 21) else # Easter occurs in April. return Date.new(y=some_year, m=4, d=day_easter - 10) end end
good_friday(some_year=Time.now.year)
click to toggle source
Determine the date of Good Friday for a given year.
# File lib/easter.rb, line 69 def self.good_friday(some_year=Time.now.year) easter(some_year) - 2 end
holy_saturday(some_year=Time.now.year)
click to toggle source
# File lib/easter.rb, line 73 def self.holy_saturday(some_year=Time.now.year) easter(some_year) - 1 end
holy_thursday(some_year=Time.now.year)
click to toggle source
# File lib/easter.rb, line 63 def self.holy_thursday(some_year=Time.now.year) easter(some_year) - 3 end
palm_sunday(some_year=Time.now.year)
click to toggle source
Determine the date of Palm Sunday for a given year.
# File lib/easter.rb, line 79 def self.palm_sunday(some_year=Time.now.year) easter(some_year) - 7 end
pentecost(some_year=Time.now.year)
click to toggle source
Determines the date of Pentecost for a given year.
# File lib/easter.rb, line 97 def self.pentecost(some_year=Time.now.year) easter(some_year) + 49 end