| Class | Date |
| In: |
brdata/lib/brdata/date_portuguese.rb
brdata/lib/brdata/feriado.rb |
| Parent: | Object |
| FERIADOS | = | [] |
| FERIADOS_METODOS | = | [] |
Valida se uma string eh uma data valida
Exemplo:
Date.valid?('01/01/2007') ==> true
Date.valid?('32/01/2007') ==> false
# File brdata/lib/brdata/date_portuguese.rb, line 31
31: def self.valid?(date)
32: begin
33: date = date.to_date
34: Date.valid_civil?(date.year, date.month, date.day)
35: rescue
36: return false
37: end
38: true
39: end
Retorna a corpus_christi no ano da data atual
Exemplo:
data = Date.new(2007, 12, 25) data.corpus_christi ==> "2007-06-07"
# File brdata/lib/brdata/feriado.rb, line 84
84: def corpus_christi
85: Date.parse((pascoa.to_time + 60.days).to_date.to_s)
86: end
Retorna a true se a data for um feriado
Exemplo:
data = Date.new(2007, 12, 25) data.feriado? ==> true
# File brdata/lib/brdata/feriado.rb, line 53
53: def feriado?
54: return true if FERIADOS.include?(Feriado.new("novo_feriado", self.day, self.month))
55: FERIADOS_METODOS.each do |metodo|
56: return true if self == send(metodo)
57: end
58: false
59: end
Retorna a pascoa no ano da data atual
Exemplo:
data = Date.new(2007, 12, 25) data.pascoa ==> "2007-4-8"
# File brdata/lib/brdata/feriado.rb, line 66
66: def pascoa
67: g = self.year % 19
68: c = (self.year / 100).floor
69: h = (c - ( c / 4 ).floor - ((8 * c) / 25).floor + 19 * g + 15) % 30
70: i = h - (h / 28).floor * (1 - (h / 28).floor * (29 / (h + 1)).floor * ((21 - g) / 11).floor)
71: j = (self.year + (self.year/ 4).floor + i + 2 - c + (c / 4).floor) % 7
72: l = i - j
73:
74: month = 3 + ((l + 40) / 44).floor
75: day = l + 28 - (31 * (month / 4 ).floor)
76: Date.parse("#{self.year}-#{month}-#{day}")
77: end