# Calculate the easter and dependent holidays require 'date' # Calculate the date for easter def easter(year) a = year%19 b = year%4 c = year%7 d = (19*a+24)%30 e = (2*b+4*c+6*d+5)%7 days = d + e + 21 easter = Date.new(year, 3, 1) + days # Exceptions if easter.mday == 26 and easter.month == 4 easter = Date.new(year, 4, 19) elsif easter.mday == 25 and easter.month == 4 and d == 28 and a > 10 easter = Date.new(year, 4, 18) end return easter end year = ARGV[0].to_i day = easter(year) # Helligdage som afhænger af påske # Palmesøndag: Søndag før påskesøndag puts "#{day - 7}: Palmesøndag" # Skærtorsdag: Torsdag før påskesøndag puts "#{day - 3}: Skærtorsdag" # Langfredag: Fredag før påskesøndag puts "#{day - 2}: Langfredag" # Påskesøndag: Første søndag efter første fuldmåne efter forårsjævndøgn puts "#{day}: Påskedag" # 2. påskedag: Mandag efter påskesøndag puts "#{day + 1}: 2. påskedag" # St. bededag: Fjerde fredag efter påskesøndag puts "#{day + 26}: Store bededag" # Kr. himmelfartsdag: Sjette torsdag efter påskesøndag puts "#{day + 39}: Kr. himmelfartsdag" # Pinsedag: 7. søndag efter påske puts "#{day + 49}: Pinsedag" # 2. pinsedag: Mandag efter pinsesøndag puts "#{day + 50}: 2. pinsedag" # Sommer og vintertid # Sommertid: Sidste søndag i marts day = Date.new(year, 3, 31) puts "#{day - day.wday}: Sommertid" # Vintertid: Sidste søndag i oktober day = Date.new(year, 10, 31) puts "#{day - day.wday}: Vintertid" # Faste fri- og helligdage puts "#{year}-01-01: Nytårsdag" puts "#{year}-06-05: Grundlovsdag" puts "#{year}-12-24: Juleaftensdag" puts "#{year}-12-25: 1. juledag" puts "#{year}-12-26: 2. juledag" puts "#{year}-12-31: Nytårsaftensdag"