holidays 3.3.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +44 -0
- data/CONTRIBUTING.md +37 -0
- data/README.md +16 -25
- data/REFERENCES +4 -1
- data/Rakefile +38 -8
- data/benchmark.rb +8 -0
- data/definitions/README.md +187 -8
- data/definitions/ar.yaml +2 -1
- data/definitions/at.yaml +17 -13
- data/definitions/au.yaml +65 -60
- data/definitions/be_fr.yaml +14 -10
- data/definitions/be_nl.yaml +8 -4
- data/definitions/bg.yaml +12 -6
- data/definitions/br.yaml +6 -3
- data/definitions/ca.yaml +8 -6
- data/definitions/ch.yaml +21 -15
- data/definitions/cl.yaml +4 -2
- data/definitions/cr.yaml +5 -3
- data/definitions/cz.yaml +4 -2
- data/definitions/de.yaml +25 -14
- data/definitions/dk.yaml +26 -17
- data/definitions/ecb_target.yaml +4 -2
- data/definitions/el.yaml +23 -18
- data/definitions/es.yaml +31 -28
- data/definitions/federal_reserve.yaml +12 -12
- data/definitions/fedex.yaml +6 -6
- data/definitions/fi.yaml +26 -25
- data/definitions/fr.yaml +8 -4
- data/definitions/gb.yaml +9 -7
- data/definitions/hr.yaml +8 -6
- data/definitions/hu.yaml +8 -6
- data/definitions/ie.yaml +17 -16
- data/definitions/index.yaml +1 -1
- data/definitions/is.yaml +29 -19
- data/definitions/it.yaml +10 -9
- data/definitions/jp.yaml +92 -44
- data/definitions/li.yaml +25 -20
- data/definitions/lt.yaml +2 -1
- data/definitions/ma.yaml +7 -7
- data/definitions/mx.yaml +11 -11
- data/definitions/nerc.yaml +6 -6
- data/definitions/nl.yaml +22 -18
- data/definitions/no.yaml +19 -11
- data/definitions/north_america_informal.yaml +6 -6
- data/definitions/nyse.yaml +9 -8
- data/definitions/nz.yaml +33 -29
- data/definitions/ph.yaml +15 -8
- data/definitions/pl.yaml +27 -17
- data/definitions/pt.yaml +4 -2
- data/definitions/ro.yaml +21 -18
- data/definitions/se.yaml +24 -18
- data/definitions/sg.yaml +10 -9
- data/definitions/si.yaml +4 -2
- data/definitions/sk.yaml +4 -2
- data/definitions/united_nations.yaml +12 -12
- data/definitions/ups.yaml +6 -6
- data/definitions/us.yaml +12 -11
- data/definitions/ve.yaml +8 -4
- data/definitions/vi.yaml +6 -6
- data/definitions/za.yaml +26 -24
- data/holidays.gemspec +3 -1
- data/lib/generated_definitions/MANIFEST +1 -1
- data/lib/generated_definitions/ar.rb +8 -6
- data/lib/generated_definitions/at.rb +11 -9
- data/lib/generated_definitions/au.rb +75 -99
- data/lib/generated_definitions/be.rb +12 -10
- data/lib/generated_definitions/be_fr.rb +12 -10
- data/lib/generated_definitions/be_nl.rb +12 -10
- data/lib/generated_definitions/bg.rb +14 -13
- data/lib/generated_definitions/br.rb +11 -9
- data/lib/generated_definitions/ca.rb +20 -20
- data/lib/generated_definitions/ch.rb +41 -44
- data/lib/generated_definitions/cl.rb +9 -7
- data/lib/generated_definitions/cr.rb +9 -7
- data/lib/generated_definitions/cz.rb +9 -6
- data/lib/generated_definitions/de.rb +25 -25
- data/lib/generated_definitions/dk.rb +17 -15
- data/lib/generated_definitions/ecb_target.rb +9 -7
- data/lib/generated_definitions/el.rb +13 -11
- data/lib/generated_definitions/es.rb +35 -33
- data/lib/generated_definitions/europe.rb +234 -247
- data/lib/generated_definitions/federal_reserve.rb +11 -9
- data/lib/generated_definitions/fedex.rb +42 -0
- data/lib/generated_definitions/fi.rb +32 -36
- data/lib/generated_definitions/fr.rb +12 -10
- data/lib/generated_definitions/gb.rb +15 -13
- data/lib/generated_definitions/hr.rb +10 -8
- data/lib/generated_definitions/hu.rb +9 -7
- data/lib/generated_definitions/ie.rb +17 -17
- data/lib/generated_definitions/is.rb +26 -26
- data/lib/generated_definitions/it.rb +9 -7
- data/lib/generated_definitions/jp.rb +112 -89
- data/lib/generated_definitions/li.rb +14 -12
- data/lib/generated_definitions/lt.rb +9 -7
- data/lib/generated_definitions/ma.rb +7 -5
- data/lib/generated_definitions/mx.rb +7 -5
- data/lib/generated_definitions/nerc.rb +10 -8
- data/lib/generated_definitions/nl.rb +15 -13
- data/lib/generated_definitions/no.rb +16 -14
- data/lib/generated_definitions/north_america.rb +34 -37
- data/lib/generated_definitions/nyse.rb +10 -8
- data/lib/generated_definitions/nz.rb +40 -40
- data/lib/generated_definitions/ph.rb +17 -13
- data/lib/generated_definitions/pl.rb +25 -27
- data/lib/generated_definitions/pt.rb +10 -8
- data/lib/generated_definitions/ro.rb +11 -9
- data/lib/generated_definitions/scandinavia.rb +92 -102
- data/lib/generated_definitions/se.rb +25 -27
- data/lib/generated_definitions/sg.rb +11 -9
- data/lib/generated_definitions/si.rb +10 -8
- data/lib/generated_definitions/sk.rb +9 -7
- data/lib/generated_definitions/united_nations.rb +7 -5
- data/lib/generated_definitions/ups.rb +13 -12
- data/lib/generated_definitions/us.rb +20 -21
- data/lib/generated_definitions/ve.rb +11 -9
- data/lib/generated_definitions/vi.rb +7 -5
- data/lib/generated_definitions/za.rb +19 -17
- data/lib/holidays.rb +20 -83
- data/lib/holidays/date_calculator/weekend_modifier.rb +22 -5
- data/lib/holidays/definition/context/generator.rb +67 -29
- data/lib/holidays/definition/context/merger.rb +8 -8
- data/lib/holidays/definition/decorator/custom_method_proc.rb +28 -0
- data/lib/holidays/definition/decorator/custom_method_source.rb +30 -0
- data/lib/holidays/definition/entity/custom_method.rb +11 -0
- data/lib/holidays/definition/parser/custom_method.rb +69 -0
- data/lib/holidays/definition/repository/custom_methods.rb +27 -0
- data/lib/holidays/definition/repository/holidays_by_month.rb +1 -1
- data/lib/holidays/definition/repository/{proc_cache.rb → proc_result_cache.rb} +19 -4
- data/lib/holidays/definition/validator/custom_method.rb +31 -0
- data/lib/holidays/definition_factory.rb +42 -6
- data/lib/holidays/errors.rb +6 -0
- data/lib/holidays/load_all_definitions.rb +57 -0
- data/lib/holidays/option/context/parse_options.rb +26 -16
- data/lib/holidays/option_factory.rb +1 -0
- data/lib/holidays/use_case/context/between.rb +41 -14
- data/lib/holidays/use_case_factory.rb +2 -1
- data/lib/holidays/version.rb +1 -1
- data/test/data/test_single_custom_holiday_with_custom_procs.yaml +24 -0
- data/test/defs/test_defs_at.rb +1 -1
- data/test/defs/test_defs_au.rb +3 -2
- data/test/defs/test_defs_cr.rb +1 -0
- data/test/defs/test_defs_cz.rb +1 -0
- data/test/defs/test_defs_dk.rb +2 -2
- data/test/defs/test_defs_el.rb +7 -6
- data/test/defs/test_defs_europe.rb +40 -33
- data/test/defs/test_defs_fedex.rb +24 -0
- data/test/defs/test_defs_fi.rb +4 -3
- data/test/defs/test_defs_hr.rb +2 -2
- data/test/defs/test_defs_hu.rb +2 -2
- data/test/defs/test_defs_is.rb +2 -1
- data/test/defs/test_defs_it.rb +2 -1
- data/test/defs/test_defs_jp.rb +1 -1
- data/test/defs/test_defs_li.rb +1 -1
- data/test/defs/test_defs_ma.rb +2 -1
- data/test/defs/test_defs_mx.rb +4 -3
- data/test/defs/test_defs_nl.rb +7 -6
- data/test/defs/test_defs_no.rb +1 -0
- data/test/defs/test_defs_north_america.rb +4 -3
- data/test/defs/test_defs_nyse.rb +2 -1
- data/test/defs/test_defs_pl.rb +1 -0
- data/test/defs/test_defs_ro.rb +11 -11
- data/test/defs/test_defs_scandinavia.rb +12 -8
- data/test/defs/test_defs_se.rb +3 -2
- data/test/defs/test_defs_sg.rb +2 -1
- data/test/defs/test_defs_vi.rb +1 -1
- data/test/defs/test_defs_za.rb +3 -2
- data/test/holidays/date_calculator/test_weekend_modifier.rb +11 -0
- data/test/holidays/definition/context/test_generator.rb +64 -5
- data/test/holidays/definition/context/test_merger.rb +5 -2
- data/test/holidays/definition/decorator/test_custom_method_proc.rb +113 -0
- data/test/holidays/definition/decorator/test_custom_method_source.rb +96 -0
- data/test/holidays/definition/parser/test_custom_method.rb +79 -0
- data/test/holidays/definition/repository/test_custom_methods.rb +43 -0
- data/test/holidays/definition/repository/test_holidays_by_month.rb +0 -32
- data/test/holidays/definition/repository/test_proc_result_cache.rb +84 -0
- data/test/holidays/definition/validator/test_custom_method.rb +89 -0
- data/test/holidays/option/context/test_parse_options.rb +5 -0
- data/test/holidays/test_definition_factory.rb +17 -2
- data/test/holidays/use_case/context/test_between.rb +2 -0
- data/test/test_all_regions.rb +7 -49
- data/test/test_custom_holidays.rb +8 -2
- data/test/test_helper.rb +9 -2
- data/test/test_holidays.rb +9 -29
- metadata +46 -11
- data/lib/generated_definitions/fed_ex.rb +0 -41
- data/test/holidays/definition/repository/test_proc_cache.rb +0 -29
- data/test/test_parse_definitions.rb +0 -30
data/definitions/ar.yaml
CHANGED
data/definitions/at.yaml
CHANGED
@@ -5,41 +5,45 @@
|
|
5
5
|
# - http://de.wikipedia.org/wiki/Feiertage_in_%C3%96sterreich
|
6
6
|
# - http://www.timeanddate.com/calendar/index.html?country=8
|
7
7
|
# - http://www.germany.info/relaunch/welcome/travel/holidays.html
|
8
|
-
---
|
8
|
+
---
|
9
9
|
months:
|
10
|
-
0:
|
10
|
+
0:
|
11
11
|
- name: Ostermontag
|
12
12
|
regions: [at]
|
13
|
-
function: easter(year)
|
13
|
+
function: easter(year)
|
14
|
+
function_modifier: 1
|
14
15
|
- name: Christi Himmelfahrt
|
15
16
|
regions: [at]
|
16
|
-
function: easter(year)
|
17
|
+
function: easter(year)
|
18
|
+
function_modifier: 39
|
17
19
|
- name: Pfingstmontag
|
18
20
|
regions: [at]
|
19
|
-
function: easter(year)
|
21
|
+
function: easter(year)
|
22
|
+
function_modifier: 50
|
20
23
|
- name: Fronleichnam
|
21
24
|
regions: [at]
|
22
|
-
function: easter(year)
|
23
|
-
|
25
|
+
function: easter(year)
|
26
|
+
function_modifier: 60
|
27
|
+
1:
|
24
28
|
- name: Neujahrstag
|
25
29
|
regions: [at]
|
26
30
|
mday: 1
|
27
31
|
- name: Heilige Drei Könige
|
28
32
|
regions: [at]
|
29
33
|
mday: 6
|
30
|
-
5:
|
34
|
+
5:
|
31
35
|
- name: Staatsfeiertag
|
32
36
|
regions: [at]
|
33
37
|
mday: 1
|
34
|
-
8:
|
38
|
+
8:
|
35
39
|
- name: Mariä Himmelfahrt
|
36
40
|
regions: [at]
|
37
41
|
mday: 15
|
38
|
-
10:
|
42
|
+
10:
|
39
43
|
- name: Nationalfeiertag
|
40
44
|
regions: [at]
|
41
45
|
mday: 26
|
42
|
-
11:
|
46
|
+
11:
|
43
47
|
- name: Allerheiligen
|
44
48
|
regions: [at]
|
45
49
|
mday: 1
|
@@ -54,7 +58,7 @@ months:
|
|
54
58
|
regions: [at]
|
55
59
|
mday: 26
|
56
60
|
tests: |
|
57
|
-
{Date.civil(2009,1,1) => 'Neujahrstag',
|
61
|
+
{Date.civil(2009,1,1) => 'Neujahrstag',
|
58
62
|
Date.civil(2009,4,13) => 'Ostermontag',
|
59
63
|
Date.civil(2009,5,1) => 'Staatsfeiertag',
|
60
64
|
Date.civil(2009,5,21) => 'Christi Himmelfahrt',
|
@@ -64,5 +68,5 @@ tests: |
|
|
64
68
|
Date.civil(2009,12,26) => '2. Weihnachtstag'}.each do |date, name|
|
65
69
|
assert_equal name, (Holidays.on(date, :at, :informal)[0] || {})[:name]
|
66
70
|
end
|
67
|
-
|
71
|
+
|
68
72
|
assert_equal [], Holidays.on(Date.civil(2010,5,8), :at), '2010-05-08 is not a holiday in Austria'
|
data/definitions/au.yaml
CHANGED
@@ -1,40 +1,43 @@
|
|
1
1
|
# Australian holiday definitions for the Ruby Holiday gem.
|
2
2
|
# Updated: 2008-11-29.
|
3
|
-
# Sources:
|
3
|
+
# Sources:
|
4
4
|
# - http://en.wikipedia.org/wiki/Australian_public_holidays
|
5
5
|
# - http://www.docep.wa.gov.au/lr/LabourRelations/Content/Wages%20and%20Conditions/Public%20Holidays/Public_Holidays.html
|
6
6
|
# - http://www.wst.tas.gov.au/employment_info/public_holidays
|
7
7
|
# - https://www.fairwork.gov.au/leave/public-holidays/list-of-public-holidays
|
8
8
|
---
|
9
9
|
months:
|
10
|
-
0:
|
10
|
+
0:
|
11
11
|
- name: Good Friday
|
12
12
|
regions: [au]
|
13
|
-
function: easter(year)
|
13
|
+
function: easter(year)
|
14
|
+
function_modifier: -2
|
14
15
|
- name: Easter Saturday
|
15
16
|
regions: [au_nsw, au_vic, au_qld, au_nt, au_act, au_sa]
|
16
|
-
function: easter(year)
|
17
|
+
function: easter(year)
|
18
|
+
function_modifier: -1
|
17
19
|
- name: Easter Sunday
|
18
20
|
regions: [au_nsw, au_vic]
|
19
21
|
function: easter(year)
|
20
22
|
- name: Easter Monday
|
21
23
|
regions: [au]
|
22
|
-
function: easter(year)
|
23
|
-
|
24
|
+
function: easter(year)
|
25
|
+
function_modifier: 1
|
26
|
+
1:
|
24
27
|
- name: New Year's Day
|
25
28
|
regions: [au]
|
26
29
|
mday: 1
|
27
|
-
observed: to_monday_if_weekend
|
30
|
+
observed: to_monday_if_weekend(date)
|
28
31
|
- name: Australia Day
|
29
32
|
regions: [au]
|
30
33
|
mday: 26
|
31
|
-
observed: to_monday_if_weekend
|
34
|
+
observed: to_monday_if_weekend(date)
|
32
35
|
2:
|
33
36
|
- name: Royal Hobart Regatta
|
34
37
|
regions: [au_tas_south]
|
35
38
|
week: 2
|
36
39
|
wday: 1
|
37
|
-
3:
|
40
|
+
3:
|
38
41
|
- name: Labour Day
|
39
42
|
regions: [au_wa]
|
40
43
|
week: 1
|
@@ -50,19 +53,19 @@ months:
|
|
50
53
|
- name: March Public Holiday
|
51
54
|
regions: [au_sa]
|
52
55
|
function: march_pub_hol_sa(year)
|
53
|
-
4:
|
56
|
+
4:
|
54
57
|
- name: ANZAC Day
|
55
58
|
regions: [au]
|
56
59
|
mday: 25
|
57
60
|
- name: ANZAC Day
|
58
61
|
regions: [au_nsw, au_vic, au_qld, au_nt, au_act, au_sa, au_tas]
|
59
62
|
mday: 25
|
60
|
-
observed: to_monday_if_sunday
|
63
|
+
observed: to_monday_if_sunday(date)
|
61
64
|
- name: ANZAC Day
|
62
65
|
regions: [au_wa]
|
63
66
|
mday: 25
|
64
|
-
observed: to_monday_if_weekend
|
65
|
-
5:
|
67
|
+
observed: to_monday_if_weekend(date)
|
68
|
+
5:
|
66
69
|
- name: Labour Day
|
67
70
|
regions: [au_qld]
|
68
71
|
function: qld_labour_day_may(year)
|
@@ -73,7 +76,7 @@ months:
|
|
73
76
|
- name: May Public Holiday
|
74
77
|
regions: [au_sa]
|
75
78
|
function: may_pub_hol_sa(year)
|
76
|
-
6:
|
79
|
+
6:
|
77
80
|
- name: Foundation Day
|
78
81
|
regions: [au_wa]
|
79
82
|
week: 1
|
@@ -119,11 +122,11 @@ months:
|
|
119
122
|
- name: Labour Day
|
120
123
|
regions: [au_qld]
|
121
124
|
function: qld_labour_day_october(year)
|
122
|
-
observed: to_monday_if_weekend
|
125
|
+
observed: to_monday_if_weekend(date)
|
123
126
|
- name: Queen's Birthday
|
124
127
|
regions: [au_qld]
|
125
128
|
function: qld_queens_bday_october(year)
|
126
|
-
observed: to_monday_if_weekend
|
129
|
+
observed: to_monday_if_weekend(date)
|
127
130
|
- name: Royal Hobart Show
|
128
131
|
regions: [au_tas_south]
|
129
132
|
function: hobart_show_day(year)
|
@@ -139,108 +142,110 @@ months:
|
|
139
142
|
regions: [au_vic_melbourne]
|
140
143
|
week: 1
|
141
144
|
wday: 2
|
142
|
-
12:
|
145
|
+
12:
|
143
146
|
- name: Christmas Day # CHRISTMAS DAY - ACT, NSW, QLD, Tas, WA observe on 27th (and 25th) if 25th is a Sunday
|
144
147
|
regions: [au_qld, au_nsw, au_act, au_tas, au_wa]
|
145
148
|
mday: 25
|
146
|
-
observed: to_tuesday_if_sunday_or_monday_if_saturday
|
149
|
+
observed: to_tuesday_if_sunday_or_monday_if_saturday(date)
|
147
150
|
- name: Christmas Day # CHRISTMAS DAY - SA observes on 26th if 25th is a Sunday (Boxing Day goes to 27th)
|
148
151
|
regions: [au_sa]
|
149
152
|
mday: 25
|
150
|
-
observed: to_monday_if_weekend
|
153
|
+
observed: to_monday_if_weekend(date)
|
151
154
|
- name: Christmas Day # CHRISTMAS DAY - Victoria and NT don't observe 25th if weekend - xmas is on the 27th
|
152
155
|
regions: [au_vic, au_nt]
|
153
156
|
function: xmas_to_weekday_if_weekend(year)
|
154
157
|
- name: Boxing Day
|
155
158
|
regions: [au_nsw, au_vic, au_qld, au_act, au_wa]
|
156
159
|
mday: 26
|
157
|
-
observed: to_tuesday_if_sunday_or_monday_if_saturday
|
160
|
+
observed: to_tuesday_if_sunday_or_monday_if_saturday(date)
|
158
161
|
- name: Boxing Day
|
159
162
|
regions: [au_sa]
|
160
163
|
function: to_weekday_if_boxing_weekend_from_year_or_to_tuesday_if_monday(year)
|
161
164
|
- name: Boxing Day
|
162
165
|
regions: [au_tas, au_nt]
|
163
166
|
function: to_weekday_if_boxing_weekend_from_year(year)
|
167
|
+
|
164
168
|
methods:
|
165
|
-
afl_grand_final:
|
166
|
-
|
169
|
+
afl_grand_final:
|
170
|
+
arguments: year
|
171
|
+
source: |
|
167
172
|
if year == 2015
|
168
173
|
Date.civil(2015, 10, 2)
|
169
174
|
end
|
170
|
-
|
171
|
-
qld_queens_bday_october: |
|
175
|
+
qld_queens_bday_october:
|
172
176
|
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
|
173
177
|
# celebrated twice in 2012
|
174
178
|
# in october again from 2016
|
175
|
-
|
179
|
+
arguments: year
|
180
|
+
source: |
|
176
181
|
if year >= 2016
|
177
|
-
|
182
|
+
DateCalculatorFactory.day_of_month_calculator.call(year, 10, 1, 1)
|
178
183
|
elsif year == 2012
|
179
184
|
1
|
180
185
|
else
|
181
186
|
nil
|
182
187
|
end
|
183
|
-
|
184
|
-
|
188
|
+
qld_queens_birthday_june:
|
189
|
+
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
|
190
|
+
# in june until 2015
|
191
|
+
arguments: year
|
192
|
+
source: |
|
193
|
+
if year <= 2015
|
194
|
+
DateCalculatorFactory.day_of_month_calculator.call(year, 6, 2, 1)
|
195
|
+
end
|
196
|
+
qld_labour_day_may:
|
185
197
|
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
|
186
198
|
# for 2013 to 2016 it was in October, otherwise it's in May
|
187
|
-
|
199
|
+
arguments: year
|
200
|
+
source: |
|
188
201
|
if year < 2013 || year >= 2016
|
189
|
-
|
202
|
+
DateCalculatorFactory.day_of_month_calculator.call(year, 5, 1, 1)
|
190
203
|
end
|
191
|
-
|
192
|
-
qld_labour_day_october: |
|
204
|
+
qld_labour_day_october:
|
193
205
|
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
|
194
206
|
# for 2013 to 2016 it was in October, otherwise it's in May
|
195
|
-
|
207
|
+
arguments: year
|
208
|
+
source: |
|
196
209
|
if year >= 2013 && year < 2016
|
197
|
-
|
210
|
+
DateCalculatorFactory.day_of_month_calculator.call(year, 10, 1, 1)
|
198
211
|
end
|
199
|
-
|
200
|
-
qld_queens_birthday_june: |
|
201
|
-
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
|
202
|
-
# in june until 2015
|
203
|
-
def self.qld_queens_birthday_june(year)
|
204
|
-
if year <= 2015
|
205
|
-
Holidays.calculate_day_of_month(year, 6, 2, 1)
|
206
|
-
end
|
207
|
-
end
|
208
|
-
g20_day_2014_only: |
|
212
|
+
g20_day_2014_only:
|
209
213
|
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
|
210
214
|
# G20 day in brisbane, in 2014, on november 14
|
211
|
-
|
215
|
+
arguments: year
|
216
|
+
source: |
|
212
217
|
year == 2014 ? 14 : nil
|
213
|
-
|
214
|
-
hobart_show_day: |
|
218
|
+
hobart_show_day:
|
215
219
|
# http://worksafe.tas.gov.au/__data/assets/pdf_file/0008/287036/Public_Holidays_2014.pdf
|
216
|
-
# The Thursday before the fourth Saturday in October.
|
217
|
-
|
218
|
-
|
220
|
+
# The Thursday before the fourth Saturday in October.
|
221
|
+
arguments: year
|
222
|
+
source: |
|
223
|
+
fourth_sat_in_oct = Date.civil(year, 10, Holidays::DateCalculatorFactory.day_of_month_calculator.call(year, 10, 4, :saturday))
|
219
224
|
fourth_sat_in_oct - 2 # the thursday before
|
220
|
-
|
221
|
-
march_pub_hol_sa: |
|
225
|
+
march_pub_hol_sa:
|
222
226
|
# http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VQ9Mfmb8-8E
|
223
227
|
# The Holidays Act 1910 provides for the third Monday in May to be a public holiday. Since 2006 this public holiday has been observed on the second Monday in March through the issuing of a special Proclamation by the Governor.
|
224
|
-
|
228
|
+
arguments: year
|
229
|
+
source: |
|
225
230
|
if year < 2006
|
226
231
|
nil
|
227
232
|
else
|
228
233
|
Date.civil(year, 3, Holidays::DateCalculatorFactory.day_of_month_calculator.call(year, 3, :second, :monday))
|
229
234
|
end
|
230
|
-
|
231
|
-
may_pub_hol_sa: |
|
235
|
+
may_pub_hol_sa:
|
232
236
|
# http://www.safework.sa.gov.au/show_page.jsp?id=2483#.VQ9Mfmb8-8E
|
233
237
|
# The Holidays Act 1910 provides for the third Monday in May to be a public holiday. Since 2006 this public holiday has been observed on the second Monday in March through the issuing of a special Proclamation by the Governor.
|
234
|
-
|
238
|
+
arguments: year
|
239
|
+
source: |
|
235
240
|
if year >= 2006
|
236
241
|
nil
|
237
242
|
else
|
238
243
|
Date.civil(year, 5, Holidays::DateCalculatorFactory.day_of_month_calculator.call(year, 5, :third, :monday))
|
239
244
|
end
|
240
|
-
|
245
|
+
|
241
246
|
tests: |
|
242
|
-
{Date.civil(2007,1,1) => 'New Year\'s Day',
|
243
|
-
Date.civil(2007,1,26) => 'Australia Day',
|
247
|
+
{Date.civil(2007,1,1) => 'New Year\'s Day',
|
248
|
+
Date.civil(2007,1,26) => 'Australia Day',
|
244
249
|
Date.civil(2007,4,6) => 'Good Friday',
|
245
250
|
Date.civil(2007,4,9) => 'Easter Monday',
|
246
251
|
Date.civil(2007,4,25) => 'ANZAC Day'}.each do |date, name|
|
@@ -367,4 +372,4 @@ tests: |
|
|
367
372
|
assert_equal "Boxing Day", Date.civil(2016, 12, 26).holidays(:au_vic)[0][:name]
|
368
373
|
assert_equal "Boxing Day", Date.civil(2016, 12, 26).holidays(:au_nt)[0][:name]
|
369
374
|
assert_equal "Christmas Day", Date.civil(2016, 12, 27).holidays(:au_vic)[0][:name]
|
370
|
-
assert_equal "Christmas Day", Date.civil(2016, 12, 27).holidays(:au_nt)[0][:name]
|
375
|
+
assert_equal "Christmas Day", Date.civil(2016, 12, 27).holidays(:au_nt)[0][:name]
|
data/definitions/be_fr.yaml
CHANGED
@@ -3,29 +3,33 @@
|
|
3
3
|
# Updated: 2012-06-20.
|
4
4
|
# Sources:
|
5
5
|
# - http://en.wikipedia.org/wiki/Public_holidays_in_Belgium
|
6
|
-
---
|
6
|
+
---
|
7
7
|
months:
|
8
|
-
0:
|
8
|
+
0:
|
9
9
|
- name: Pâques
|
10
10
|
regions: [be_fr]
|
11
11
|
function: easter(year)
|
12
12
|
- name: Lundi de Pâques
|
13
13
|
regions: [be_fr]
|
14
|
-
function: easter(year)
|
14
|
+
function: easter(year)
|
15
|
+
function_modifier: 1
|
15
16
|
- name: Ascension
|
16
17
|
regions: [be_fr]
|
17
|
-
function: easter(year)
|
18
|
+
function: easter(year)
|
19
|
+
function_modifier: 39
|
18
20
|
- name: Pentecôte
|
19
21
|
regions: [be_fr]
|
20
|
-
function: easter(year)
|
22
|
+
function: easter(year)
|
23
|
+
function_modifier: 49
|
21
24
|
- name: Lundi de Pentecôte
|
22
25
|
regions: [be_fr]
|
23
|
-
function: easter(year)
|
24
|
-
|
26
|
+
function: easter(year)
|
27
|
+
function_modifier: 50
|
28
|
+
1:
|
25
29
|
- name: Jour de l'an
|
26
30
|
regions: [be_fr]
|
27
31
|
mday: 1
|
28
|
-
5:
|
32
|
+
5:
|
29
33
|
- name: Fête du travail
|
30
34
|
regions: [be_fr]
|
31
35
|
mday: 1
|
@@ -33,11 +37,11 @@ months:
|
|
33
37
|
- name: Fête nationale
|
34
38
|
regions: [be_fr]
|
35
39
|
mday: 21
|
36
|
-
8:
|
40
|
+
8:
|
37
41
|
- name: Assomption
|
38
42
|
regions: [be_fr]
|
39
43
|
mday: 15
|
40
|
-
11:
|
44
|
+
11:
|
41
45
|
- name: Toussaint
|
42
46
|
regions: [be_fr]
|
43
47
|
mday: 1
|
data/definitions/be_nl.yaml
CHANGED
@@ -11,16 +11,20 @@ months:
|
|
11
11
|
function: easter(year)
|
12
12
|
- name: Paasmaandag
|
13
13
|
regions: [be_nl]
|
14
|
-
function: easter(year)
|
14
|
+
function: easter(year)
|
15
|
+
function_modifier: 1
|
15
16
|
- name: O.H. Hemelvaart
|
16
17
|
regions: [be_nl]
|
17
|
-
function: easter(year)
|
18
|
+
function: easter(year)
|
19
|
+
function_modifier: 39
|
18
20
|
- name: Pinksteren
|
19
21
|
regions: [be_nl]
|
20
|
-
function: easter(year)
|
22
|
+
function: easter(year)
|
23
|
+
function_modifier: 49
|
21
24
|
- name: Pinkstermaandag
|
22
25
|
regions: [be_nl]
|
23
|
-
function: easter(year)
|
26
|
+
function: easter(year)
|
27
|
+
function_modifier: 50
|
24
28
|
1:
|
25
29
|
- name: Nieuwjaar
|
26
30
|
regions: [be_nl]
|
data/definitions/bg.yaml
CHANGED
@@ -7,16 +7,20 @@ months:
|
|
7
7
|
0:
|
8
8
|
- name: Good Friday
|
9
9
|
regions: [bg_en]
|
10
|
-
function: orthodox_easter_julian(year)
|
10
|
+
function: orthodox_easter_julian(year)
|
11
|
+
function_modifier: -2
|
11
12
|
- name: Разпети петък
|
12
13
|
regions: [bg_bg]
|
13
|
-
function: orthodox_easter_julian(year)
|
14
|
+
function: orthodox_easter_julian(year)
|
15
|
+
function_modifier: -2
|
14
16
|
- name: Holy Saturday
|
15
17
|
regions: [bg_en]
|
16
|
-
function: orthodox_easter_julian(year)
|
18
|
+
function: orthodox_easter_julian(year)
|
19
|
+
function_modifier: -1
|
17
20
|
- name: Велика събота
|
18
21
|
regions: [bg_bg]
|
19
|
-
function: orthodox_easter_julian(year)
|
22
|
+
function: orthodox_easter_julian(year)
|
23
|
+
function_modifier: -1
|
20
24
|
- name: Easter Sunday
|
21
25
|
regions: [bg_en]
|
22
26
|
function: orthodox_easter_julian(year)
|
@@ -25,10 +29,12 @@ months:
|
|
25
29
|
function: orthodox_easter_julian(year)
|
26
30
|
- name: Easter Monday
|
27
31
|
regions: [bg_en]
|
28
|
-
function: orthodox_easter_julian(year)
|
32
|
+
function: orthodox_easter_julian(year)
|
33
|
+
function_modifier: 1
|
29
34
|
- name: Възкресение Христово. Великден
|
30
35
|
regions: [bg_bg]
|
31
|
-
function: orthodox_easter_julian(year)
|
36
|
+
function: orthodox_easter_julian(year)
|
37
|
+
function_modifier: 1
|
32
38
|
1:
|
33
39
|
- name: New Year's Day
|
34
40
|
regions: [bg_en]
|