class Festivoscolombia
Public Class Methods
calculo_pascua(anio = DateTime.now.year)
click to toggle source
# File lib/festivoscolombia.rb, line 36 def self.calculo_pascua(anio = DateTime.now.year) pascua = DateTime.now #anio = pascua.year a = anio % 19 b = anio % 4 c = anio % 7 k = anio / 100 pp = (13 + (8 * k)) / 25 q = k / 4 mm = (15 - pp + k - q) % 30 nn = (4 + k - q) % 7 d = (19 * a + mm) % 30 e = ((2 * b) + (4 * c) + (6 * d) + nn) % 7 if (d + e) < 10 pascua = DateTime.new(anio, 03, (d + e + 22)) end if (d + e) > 10 pascua = DateTime.new(anio, 04, (d + e - 9)) end return pascua end
generar_festivos(anio = DateTime.now.year)
click to toggle source
# File lib/festivoscolombia.rb, line 6 def self.generar_festivos(anio = DateTime.now.year) fecha_pascua = calculo_pascua(anio) festivos = Array.new festivos = [DateTime.new(anio, 01, 01).strftime("%Y-%m-%d"), # año nuevo DateTime.new(anio, 05, 01).strftime("%Y-%m-%d"), # día del tranbajo DateTime.new(anio, 07, 20).strftime("%Y-%m-%d"), # día de la independencia DateTime.new(anio, 8, 07).strftime("%Y-%m-%d"), # batalla boyacá DateTime.new(anio, 12, 8).strftime("%Y-%m-%d"), # inmaculada concepcion DateTime.new(anio, 12, 25).strftime("%Y-%m-%d")] # navidad festivos.push((fecha_pascua - 3).strftime("%Y-%m-%d")) # jueves santo festivos.push((fecha_pascua - 2).strftime("%Y-%m-%d")) # viernes santo festivos.push((fecha_pascua + 43).strftime("%Y-%m-%d")) # ascención de jesus festivos.push((fecha_pascua + 64).strftime("%Y-%m-%d")) # corpus christi festivos.push((fecha_pascua + 71).strftime("%Y-%m-%d")) # sagrado corazon de jesus festivos.push(return_monday(DateTime.new(anio, 01, 06)).strftime("%Y-%m-%d")) # epifania Reyes magos festivos.push(return_monday(DateTime.new(anio, 03, 19)).strftime("%Y-%m-%d")) # día san jose festivos.push(return_monday(DateTime.new(anio, 06, 29)).strftime("%Y-%m-%d")) # san pedro y san pablo festivos.push(return_monday(DateTime.new(anio, 8, 15)).strftime("%Y-%m-%d")) # asunción de la virgen festivos.push(return_monday(DateTime.new(anio, 10, 12)).strftime("%Y-%m-%d")) # día de la raza festivos.push(return_monday(DateTime.new(anio, 11, 01)).strftime("%Y-%m-%d")) # todos los santos festivos.push(return_monday(DateTime.new(anio, 11, 11)).strftime("%Y-%m-%d")) # independencia cartagena return festivos.sort # puts festivos.include? DateTime.strptime("2019-12-25", "%Y-%m-%d") end
return_monday(date)
click to toggle source
# File lib/festivoscolombia.rb, line 60 def self.return_monday(date) loop do break if date.monday? date += 1 end return date end