Method: Lazier::DateTime::ClassMethods#easter

Defined in:
lib/lazier/datetime.rb

#easter(year = nil) ⇒ Date

Returns the Easter (according to Gregorian calendar) date for the year.

Parameters:

  • year (Fixnum) (defaults to: nil)

    The year to compute the date for. Defaults to the current year.

Returns:

  • (Date)

    The Easter date for the year.

See Also:



121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/lazier/datetime.rb', line 121

def easter(year = nil)
  year = ::Date.today.year if !year.is_integer?

  # Compute using Anonymous Gregorian Algorithm: http://en.wikipedia.org/wiki/Computus#Anonymous_Gregorian_algorithm
  data = easter_start(year)
  data = easter_part_1(data)
  data = easter_part_2(year, data)
  data = easter_part_3(year, data)
  day, month = easter_end(data)

  ::Date.civil(year, month, day)
end