holidays/data/se.yaml

91 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Swedish holiday definitions for the Ruby Holiday gem.
#
# Updated: 2008-11-28.
# Sources:
# - http://en.wikipedia.org/wiki/Holidays_in_Sweden
# - http://www.worldtravelguide.net/country/269/public_holidays/Europe/Sweden.html
# - http://hem.passagen.se/farila/midsum.htm
# - http://www.timeanddate.com/calendar/?country=21
---
months:
0:
- name: Långfredagen
regions: [se]
function: easter(year)-2
- name: Påskdagen
regions: [se]
function: easter(year)
- name: Annandag påsk
regions: [se]
function: easter(year)+1
- name: Kristi himmelsfärdsdag # Ascension Day
regions: [se]
function: easter(year)+39
- name: Pingstdagen # Whitsunday
regions: [se]
function: easter(year)+49
- name: Alla helgons dag # All Saint's Day
regions: [se]
function: se_alla_helgons_dag(year)
1:
- name: Nyårsdagen
regions: [se]
mday: 1
- name: Trettondedag jul
regions: [se]
mday: 6
5:
- name: Första maj
regions: [se]
mday: 1
6:
- name: Nationaldagen
regions: [se]
mday: 6
- name: Midsommardagen
regions: [se]
function: se_midsommardagen(year)
12:
- name: Juldagen
regions: [se]
mday: 25
- name: Annandag jul
regions: [se]
mday: 26
methods:
se_midsommardagen: |
# Sweden: Mid-summer (Saturday between June 2026)
def self.se_midsommardagen(year)
date = Date.civil(year,6,20)
date += (6 - date.wday)
date
end
se_alla_helgons_dag: |
# Sweden: All Saint's Day (Saturday between Oct 31 and Nov 6)
def self.se_alla_helgons_dag(year)
date = Date.civil(year,10,31)
date += (6 - date.wday)
date
end
tests: |
{Date.civil(2008,1,1) => 'Nyårsdagen',
Date.civil(2008,1,6) => 'Trettondedag jul',
Date.civil(2008,3,21) => 'Långfredagen',
Date.civil(2008,3,23) => 'Påskdagen',
Date.civil(2008,3,24) => 'Annandag påsk',
Date.civil(2008,5,1) => 'Första maj',
Date.civil(2008,5,1) => 'Kristi himmelsfärdsdag',
Date.civil(2008,5,11) => 'Pingstdagen',
Date.civil(2008,6,6) => 'Nationaldagen',
Date.civil(2005,6,25) => 'Midsommardagen',
Date.civil(2006,6,24) => 'Midsommardagen',
Date.civil(2007,6,23) => 'Midsommardagen',
Date.civil(2008,6,21) => 'Midsommardagen',
Date.civil(2005,11,5) => 'Alla helgons dag',
Date.civil(2006,11,4) => 'Alla helgons dag',
Date.civil(2007,11,3) => 'Alla helgons dag',
Date.civil(2008,11,1) => 'Alla helgons dag',
Date.civil(2008,12,25) => 'Juldagen',
Date.civil(2008,12,26) => 'Annandag jul'}.each do |date, name|
assert_equal name, (Holidays.on(date, :se, :informal)[0] || {})[:name]
end