-
Notifications
You must be signed in to change notification settings - Fork 281
/
fi.yaml
109 lines (106 loc) · 2.95 KB
/
fi.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Finnish holiday definitions for the Ruby Holiday gem.
#
# Updated: 2010-12-28.
# Sources:
# - http://en.wikipedia.org/wiki/Public_holidays_in_Finland
---
months:
0:
- name: Pitkäperjantai
regions: [fi]
function: easter(year)-2
- name: Pääsiäispäivä
regions: [fi]
function: easter(year)
- name: 2. Pääsiäispäivä
regions: [fi]
function: easter(year)+1
- name: Helatorstai # Ascension Day
regions: [fi]
function: easter(year)+39
- name: Helluntaipäivä # Whitsunday
regions: [fi]
function: easter(year)+49
- name: Pyhäinpäivä # All Saint's Day
regions: [fi]
function: fi_pyhainpaiva(year)
1:
- name: Uudenvuodenpäivä
regions: [fi]
mday: 1
- name: Loppiainen
regions: [fi]
mday: 6
5:
- name: Vappu
regions: [fi]
mday: 1
6:
- name: Juhannusaatto
regions: [fi]
function: fi_juhannusaatto(year)
- name: Juhannuspäivä
regions: [fi]
function: fi_juhannuspaiva(year)
12:
- name: Itsenäisyyspäivä
regions: [fi]
mday: 6
- name: Jouluaatto
regions: [fi]
mday: 24
- name: Joulupäivä
regions: [fi]
mday: 25
- name: Tapaninpäivä
regions: [fi]
mday: 26
methods:
fi_juhannusaatto: |
# Finland: Mid-summer eve (Friday between June 19–25)
def self.fi_juhannusaatto(year)
date = Date.civil(year,6,19)
if date.wday > 5 #if 19.6 is saturday
date += 6
else
date += (5 - date.wday)
end
date
end
fi_juhannuspaiva: |
# Finland: Mid-summer (Saturday between June 20–26)
def self.fi_juhannuspaiva(year)
date = Date.civil(year,6,20)
date += (6 - date.wday)
date
end
fi_pyhainpaiva: |
# Finland: All Saint's Day (Saturday between Oct 31 and Nov 6)
def self.fi_pyhainpaiva(year)
date = Date.civil(year,10,31)
date += (6 - date.wday)
date
end
tests: |
{Date.civil(2008,1,1) => 'Uudenvuodenpäivä',
Date.civil(2008,1,6) => 'Loppiainen',
Date.civil(2008,3,21) => 'Pitkäperjantai',
Date.civil(2008,3,23) => 'Pääsiäispäivä',
Date.civil(2008,3,24) => '2. Pääsiäispäivä',
Date.civil(2008,5,1) => 'Vappu',
Date.civil(2008,5,1) => 'Helatorstai',
Date.civil(2008,5,11) => 'Helluntaipäivä',
Date.civil(2005,6,25) => 'Juhannuspäivä',
Date.civil(2006,6,24) => 'Juhannuspäivä',
Date.civil(2007,6,23) => 'Juhannuspäivä',
Date.civil(2008,6,21) => 'Juhannuspäivä',
Date.civil(2005,11,5) => 'Pyhäinpäivä',
Date.civil(2006,11,4) => 'Pyhäinpäivä',
Date.civil(2007,11,3) => 'Pyhäinpäivä',
Date.civil(2008,11,1) => 'Pyhäinpäivä',
Date.civil(2008,12,6) => 'Itsenäisyyspäivä',
Date.civil(2008,12,24) => 'Jouluaatto',
Date.civil(2008,12,25) => 'Joulupäivä',
Date.civil(2008,12,26) => 'Tapaninpäivä'}.each do |date, name|
assert_equal name, (Holidays.on(date, :fi, :informal)[0] || {})[:name]
end