Class: Date

Inherits:
Object
  • Object
show all
Defined in:
lib/brferiado/feriado.rb

Constant Summary collapse

FERIADOS =

end

feriados
FERIADOS_METODOS =
metodos

Instance Method Summary collapse

Instance Method Details

#corpus_christiObject

Retorna a corpus_christi no ano da data atual

Exemplo:

data = Date.new(2007, 12, 25)
data.corpus_christi ==> "2007-06-07"


84
85
86
# File 'lib/brferiado/feriado.rb', line 84

def corpus_christi
  Date.parse((pascoa.to_time + 60.days).to_date.to_s)
end

#feriado?Boolean

Retorna a true se a data for um feriado

Exemplo:

data = Date.new(2007, 12, 25)
data.feriado? ==> true

Returns:

  • (Boolean)


53
54
55
56
57
58
59
# File 'lib/brferiado/feriado.rb', line 53

def feriado?
  return true if FERIADOS.include?(Feriado.new("novo_feriado", self.day, self.month))
  FERIADOS_METODOS.each do |metodo|
    return true if self == send(metodo)
  end
  false
end

#pascoaObject

Retorna a pascoa no ano da data atual

Exemplo:

data = Date.new(2007, 12, 25)
data.pascoa ==> "2007-4-8"


66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/brferiado/feriado.rb', line 66

def pascoa
  g = self.year % 19
  c = (self.year / 100).floor
  h = (c - ( c / 4 ).floor - ((8 * c) / 25).floor + 19 * g + 15) % 30
  i = h - (h / 28).floor * (1 - (h / 28).floor * (29 / (h + 1)).floor * ((21 - g) / 11).floor)
  j = (self.year + (self.year/ 4).floor + i + 2 - c + (c / 4).floor) % 7
  l = i - j

  month = 3 + ((l + 40) / 44).floor
  day   = l + 28 - (31 * (month / 4 ).floor)
  Date.parse("#{self.year}-#{month}-#{day}")
end