class Feriados::Rules::Easter

Attributes

year[R]

Public Class Methods

holiday?(date) click to toggle source
# File lib/feriados/rules/easter.rb, line 19
def self.holiday?(date)
  easter = Easter.new(date.year)

  easter.date == date
end
new(year) click to toggle source
# File lib/feriados/rules/easter.rb, line 6
def initialize(year)
  @year = year
end

Public Instance Methods

date() click to toggle source
# File lib/feriados/rules/easter.rb, line 10
def date
  result = h + l - 7 * m + 114

  month = result / 31
  day = (result % 31) + 1

  Date.new(year, month, day)
end

Private Instance Methods

a() click to toggle source
# File lib/feriados/rules/easter.rb, line 27
def a
  year % 19
end
b() click to toggle source
# File lib/feriados/rules/easter.rb, line 31
def b
  year / 100
end
c() click to toggle source
# File lib/feriados/rules/easter.rb, line 35
def c
  year % 100
end
d() click to toggle source
# File lib/feriados/rules/easter.rb, line 39
def d
  b / 4
end
e() click to toggle source
# File lib/feriados/rules/easter.rb, line 43
def e
  b % 4
end
f() click to toggle source
# File lib/feriados/rules/easter.rb, line 47
def f
  (b + 8) / 25
end
g() click to toggle source
# File lib/feriados/rules/easter.rb, line 51
def g
  (b - f + 1) / 3
end
h() click to toggle source
# File lib/feriados/rules/easter.rb, line 55
def h
  (19 * a + b - d - g + 15) % 30
end
i() click to toggle source
# File lib/feriados/rules/easter.rb, line 59
def i
  c / 4
end
k() click to toggle source
# File lib/feriados/rules/easter.rb, line 63
def k
  c % 4
end
l() click to toggle source
# File lib/feriados/rules/easter.rb, line 67
def l
  (32 + 2 * e + 2 * i - h - k) % 7
end
m() click to toggle source
# File lib/feriados/rules/easter.rb, line 71
def m
  (a + 11 * h + 22 * l) / 451
end