holidays 8.7.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +2 -2
  3. data/CHANGELOG.md +9 -0
  4. data/README.md +64 -54
  5. data/holidays.gemspec +8 -3
  6. data/lib/generated_definitions/MANIFEST +5 -0
  7. data/lib/generated_definitions/REGIONS.rb +2 -2
  8. data/lib/generated_definitions/au.rb +24 -5
  9. data/lib/generated_definitions/bg.rb +7 -7
  10. data/lib/generated_definitions/br.rb +2 -1
  11. data/lib/generated_definitions/cy.rb +40 -0
  12. data/lib/generated_definitions/de.rb +11 -6
  13. data/lib/generated_definitions/europe.rb +38 -30
  14. data/lib/generated_definitions/gr.rb +38 -0
  15. data/lib/generated_definitions/hk.rb +12 -77
  16. data/lib/generated_definitions/in.rb +64 -0
  17. data/lib/generated_definitions/it.rb +1 -0
  18. data/lib/generated_definitions/ke.rb +34 -0
  19. data/lib/generated_definitions/lt.rb +2 -1
  20. data/lib/generated_definitions/northamerica.rb +13 -5
  21. data/lib/generated_definitions/nz.rb +2 -1
  22. data/lib/generated_definitions/pl.rb +2 -1
  23. data/lib/generated_definitions/ro.rb +2 -0
  24. data/lib/generated_definitions/sk.rb +2 -4
  25. data/lib/generated_definitions/southamerica.rb +1 -0
  26. data/lib/generated_definitions/tsx.rb +46 -0
  27. data/lib/generated_definitions/ups.rb +2 -1
  28. data/lib/generated_definitions/us.rb +13 -5
  29. data/lib/holidays/date_calculator/lunar_date.rb +160 -5
  30. data/lib/holidays/date_calculator/weekend_modifier.rb +13 -0
  31. data/lib/holidays/definition/context/generator.rb +2 -2
  32. data/lib/holidays/definition/generator/regions.rb +2 -1
  33. data/lib/holidays/definition/generator/test.rb +1 -1
  34. data/lib/holidays/finder/context/search.rb +4 -1
  35. data/lib/holidays/load_all_definitions.rb +4 -1
  36. data/lib/holidays/version.rb +1 -1
  37. data/test/defs/test_defs_au.rb +11 -0
  38. data/test/defs/test_defs_bg.rb +4 -4
  39. data/test/defs/test_defs_br.rb +4 -0
  40. data/test/defs/{test_defs_el.rb → test_defs_cy.rb} +18 -18
  41. data/test/defs/test_defs_de.rb +4 -0
  42. data/test/defs/test_defs_europe.rb +59 -49
  43. data/test/defs/test_defs_gr.rb +41 -0
  44. data/test/defs/test_defs_hk.rb +34 -0
  45. data/test/defs/test_defs_in.rb +94 -0
  46. data/test/defs/test_defs_it.rb +2 -0
  47. data/test/defs/test_defs_ke.rb +31 -0
  48. data/test/defs/test_defs_lt.rb +2 -0
  49. data/test/defs/test_defs_northamerica.rb +16 -9
  50. data/test/defs/test_defs_nz.rb +4 -0
  51. data/test/defs/test_defs_pl.rb +3 -1
  52. data/test/defs/test_defs_ro.rb +4 -0
  53. data/test/defs/test_defs_sk.rb +11 -15
  54. data/test/defs/test_defs_southamerica.rb +4 -0
  55. data/test/defs/test_defs_tsx.rb +70 -0
  56. data/test/defs/test_defs_us.rb +16 -9
  57. data/test/holidays/definition/generator/test_regions.rb +4 -4
  58. data/test/integration/test_available_regions.rb +1 -1
  59. data/test/integration/test_holidays.rb +1 -1
  60. metadata +27 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 572db74799733f361987b49b2e749a1f5953368bd56f89dedab02f217b86167c
4
- data.tar.gz: 9a6bfce2599a6deb49ce351fcca8ea8fdc799b42fcd29c8cb0d9ed71185cefa2
3
+ metadata.gz: 3c970bf0b9b26a077f9902bc3729390c606b9354149ee024910689dfedcf4831
4
+ data.tar.gz: f21f303f0d7bcf522620f64fb1c35c36d84ba70a4de2aecc3c048b24a2be0e65
5
5
  SHA512:
6
- metadata.gz: dfe795b467494aaf0eb595f6355bf98ba9bbc503c065491261a498bb745db3d35ce38c6d5a9edefa1eee641bd8bd71838e2571220d5c3ffa58231a069688e401
7
- data.tar.gz: 688be4308f0721b7a8ba6fa7e4e8bed668facab50132f266ab8fca1c9466e25677f917029dc9ce1a6862a4fd0df860822c10a891cc5d9d5c3ab020834484e7e7
6
+ metadata.gz: cf01eea6da4b4847aa8760dddc281b9c7f661ca8bb2fe7e36d09f9737ba2bb4cd0a1785910dcc7df567565c6ad86f1eb695ded055991b7f890d49303b71dd3e3
7
+ data.tar.gz: be38f100fd9ff3ba4b8aa8621226574c9f699ed5c8e1340c595586e4ea538a415c3685ef94b8471fb1b15830d9b9ff7840f32f930a4ac40578460ec8c2563b30
@@ -11,13 +11,13 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  strategy:
13
13
  matrix:
14
- ruby-version: ['2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', 'ruby-head']
14
+ ruby-version: ['3.2', '3.3', '3.4', 'ruby-head', '4.0']
15
15
  env:
16
16
  BUNDLER_NO_OLD_RUBYGEMS_WARNING: true
17
17
  steps:
18
18
  - uses: actions/checkout@v3
19
19
  - name: Set up Ruby
20
- uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
20
+ uses: ruby/setup-ruby@3ff19f5e2baf30647122352b96108b1fbe250c64 #v1.299.0
21
21
  with:
22
22
  ruby-version: ${{ matrix.ruby-version }}
23
23
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Ruby Holidays Gem CHANGELOG
2
2
 
3
+ ## 9.0.0
4
+
5
+ * Drop support for Ruby < 3.2. Supported versions are now 3.2, 3.3, 3.4, and ruby-head.
6
+ * Update to [v5.9.0 definitions](https://github.com/holidays/definitions/releases/tag/v5.9.0). Please see the changelog for the definition details.
7
+
8
+ ## 8.8.0
9
+
10
+ * Update to [v5.7.4 definitions](https://github.com/holidays/definitions/releases/tag/v5.7.4). Please see the changelog for the definition details.
11
+
3
12
  ## 8.7.1
4
13
 
5
14
  * Fix testing issues and github action config, no behavior changes
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Ruby Holidays Gem [![Build Status](https://travis-ci.org/holidays/holidays.svg?branch=master)](https://travis-ci.org/holidays/holidays)
1
+ # Ruby Holidays Gem [![Build Status](https://github.com/holidays/holidays/actions/workflows/ruby.yml/badge.svg)](https://github.com/holidays/holidays/actions/workflows/ruby.yml)
2
2
 
3
3
  Functionality to deal with holidays in Ruby.
4
4
 
@@ -21,6 +21,7 @@ This gem is tested with the following ruby versions:
21
21
  * 3.0.6
22
22
  * 3.1.4
23
23
  * 3.2.2
24
+ * 3.3.0
24
25
  * JRuby 9.2.21.0
25
26
  * JRuby 9.4.2.0
26
27
 
@@ -45,23 +46,23 @@ This gem offers multiple ways to check for holidays for a variety of scenarios.
45
46
 
46
47
  Get all holidays on April 25, 2008 in Australia:
47
48
 
48
- ```
49
- Holidays.on(Date.civil(2008, 4, 25), :au)
49
+ ```ruby
50
+ Holidays.on(Date.new(2008, 4, 25), :au)
50
51
  => [{:name => 'ANZAC Day',...}]
51
52
  ```
52
53
 
53
54
  You can check multiple regions in a single call:
54
55
 
55
- ```
56
- Holidays.on(Date.civil(2008, 1, 1), :us, :fr)
56
+ ```ruby
57
+ Holidays.on(Date.new(2008, 1, 1), :us, :fr)
57
58
  => [{:name=>"New Year's Day", :regions=>[:us],...},
58
59
  {:name=>"Jour de l'an", :regions=>[:fr],...}]
59
60
  ```
60
61
 
61
62
  You can leave off 'regions' to get holidays for any region in our [definitions](https://github.com/holidays/definitions):
62
63
 
63
- ```
64
- Holidays.on(Date.civil(2007, 4, 25))
64
+ ```ruby
65
+ Holidays.on(Date.new(2007, 4, 25))
65
66
  => [{:name=>"ANZAC Day", :regions=>[:au],...},
66
67
  {:name=>"Festa della Liberazione", :regions=>[:it],...},
67
68
  {:name=>"Dia da Liberdade", :regions=>[:pt],...}
@@ -73,9 +74,9 @@ You can leave off 'regions' to get holidays for any region in our [definitions](
73
74
 
74
75
  Get all holidays during the month of July 2008 in Canada and the US:
75
76
 
76
- ```
77
- from = Date.civil(2008,7,1)
78
- to = Date.civil(2008,7,31)
77
+ ```ruby
78
+ from = Date.new(2008,7,1)
79
+ to = Date.new(2008,7,31)
79
80
 
80
81
  Holidays.between(from, to, :ca, :us)
81
82
  => [{:name => 'Canada Day',...}
@@ -90,23 +91,23 @@ By default this flag is turned off, meaning no informal holidays will be returne
90
91
 
91
92
  Get Valentine's Day in the US:
92
93
 
93
- ```
94
+ ```ruby
94
95
  Holidays.on(Date.new(2018, 2, 14), :us, :informal)
95
96
  => [{:name=>"Valentine's Day",...}]
96
97
  ```
97
98
 
98
99
  Leaving off 'informal' will mean that Valentine's Day is not returned:
99
100
 
100
- ```
101
+ ```ruby
101
102
  Holidays.on(Date.new(2018, 2, 14), :us)
102
103
  => []
103
104
  ```
104
105
 
105
106
  Get informal holidays during the month of February 2008 for any region:
106
107
 
107
- ```
108
- from = Date.civil(2008,2,1)
109
- to = Date.civil(2008,2,15)
108
+ ```ruby
109
+ from = Date.new(2008,2,1)
110
+ to = Date.new(2008,2,15)
110
111
 
111
112
  Holidays.between(from, to, :informal)
112
113
  => [{:name => 'Valentine\'s Day',...}]
@@ -120,25 +121,26 @@ By default this flag is turned off, meaning no observed logic will be applied.
120
121
 
121
122
  Get holidays that are observed on Monday July 2, 2007 in British Columbia, Canada:
122
123
 
123
- ```
124
- Holidays.on(Date.civil(2007, 7, 2), :ca_bc, :observed)
124
+ ```ruby
125
+ Holidays.on(Date.new(2007, 7, 2), :ca_bc, :observed)
125
126
  => [{:name => 'Canada Day',...}]
126
127
  ```
127
128
 
128
129
  Leaving off the 'observed' flag will mean that 'Canada Day' is not returned since it actually falls on Sunday July 1:
129
130
 
130
- ```
131
- Holidays.on(Date.civil(2007, 7, 2), :ca_bc)
131
+ ```ruby
132
+ Holidays.on(Date.new(2007, 7, 2), :ca_bc)
132
133
  => []
133
- Holidays.on(Date.civil(2007, 7, 1), :ca_bc)
134
+
135
+ Holidays.on(Date.new(2007, 7, 1), :ca_bc)
134
136
  => [{:name=>"Canada Day", :regions=>[:ca],...}]
135
137
  ```
136
138
 
137
139
  Get all observed US Federal holidays between 2018 and 2019:
138
140
 
139
- ```
140
- from = Date.civil(2018,1,1)
141
- to = Date.civil(2019,12,31)
141
+ ```ruby
142
+ from = Date.new(2018,1,1)
143
+ to = Date.new(2019,12,31)
142
144
 
143
145
  Holidays.between(from, to, :federalreserve, :observed)
144
146
  => [{:name => "New Year's Day"....}
@@ -151,25 +153,28 @@ Check if there are any holidays taking place during a specified work week. 'Work
151
153
 
152
154
  Check whether a holiday falls during first week of the year for any region:
153
155
 
154
- ```
155
- Holidays.any_holidays_during_work_week?(Date.civil(2016, 1, 1))
156
+ ```ruby
157
+ Holidays.any_holidays_during_work_week?(Date.new(2016, 1, 1))
156
158
  => true
157
159
  ```
158
160
 
159
161
  You can also pass in `informal` or `observed`:
160
162
 
161
- ```
163
+ ```ruby
162
164
  # Returns true since Valentine's Day falls on a Wednesday
163
- holidays.any_holidays_during_work_week?(date.civil(2018, 2, 14), :us, :informal)
165
+ Holidays.any_holidays_during_work_week?(Date.new(2018, 2, 14), :us, :informal)
164
166
  => true
167
+
165
168
  # Returns false if you don't specify informal
166
- irb(main):006:0> Holidays.any_holidays_during_work_week?(Date.civil(2018, 2, 14), :us)
169
+ Holidays.any_holidays_during_work_week?(Date.new(2018, 2, 14), :us)
167
170
  => false
171
+
168
172
  # Returns true since Veteran's Day is observed on Monday November 12, 2018
169
- holidays.any_holidays_during_work_week?(date.civil(2018, 11, 12), :us, :observed)
173
+ Holidays.any_holidays_during_work_week?(Date.new(2018, 11, 12), :us, :observed)
170
174
  => true
175
+
171
176
  # Returns false if you don't specify observed since the actual holiday is on Sunday November 11th 2018
172
- irb(main):005:0> Holidays.any_holidays_during_work_week?(Date.civil(2018, 11, 12), :us)
177
+ Holidays.any_holidays_during_work_week?(Date.new(2018, 11, 12), :us)
173
178
  => false
174
179
  ```
175
180
 
@@ -177,21 +182,21 @@ irb(main):005:0> Holidays.any_holidays_during_work_week?(Date.civil(2018, 11, 12
177
182
 
178
183
  Get the next holidays occurring from February 23, 2016 for the US:
179
184
 
180
- ```
181
- Holidays.next_holidays(3, [:us, :informal], Date.civil(2016, 2, 23))
185
+ ```ruby
186
+ Holidays.next_holidays(3, [:us, :informal], Date.new(2016, 2, 23))
182
187
  => [{:name => "St. Patrick's Day",...}, {:name => "Good Friday",...}, {:name => "Easter Sunday",...}]
183
188
  ```
184
189
 
185
190
  You can specify the number of holidays to return. This method will default to `Date.today` if no date is provided.
186
191
 
187
- #### Find all holidays occuring starting from a specific date to the end of the year
192
+ #### Find all holidays occurring starting from a specific date to the end of the year
188
193
 
189
194
  Get all holidays starting from February 23, 2016 to end of year in the US:
190
195
 
191
- ```
192
- Holidays.year_holidays([:ca_on], Date.civil(2016, 2, 23))
196
+ ```ruby
197
+ Holidays.year_holidays([:ca_on], Date.new(2016, 2, 23))
193
198
  => [{:name=>"Good Friday",...},
194
- {name=>"Easter Sunday",...},
199
+ {:name=>"Easter Sunday",...},
195
200
  {:name=>"Victoria Day",...},
196
201
  {:name=>"Canada Day",...},
197
202
  {:name=>"Civic Holiday",...},
@@ -208,7 +213,7 @@ This method will default to `Date.today` if no date is provided.
208
213
 
209
214
  Return all available regions:
210
215
 
211
- ```
216
+ ```ruby
212
217
  Holidays.available_regions
213
218
  => [:ar, :at, ..., :sg] # this will be a big array
214
219
  ```
@@ -219,18 +224,21 @@ In addition to the [provided definitions](https://github.com/holidays/definition
219
224
 
220
225
  To load custom 'Company Founding' holiday on June 1st:
221
226
 
222
- ```
227
+ ```ruby
223
228
  Holidays.load_custom('/home/user/holiday_definitions/custom_holidays.yaml')
224
- Holidays.on(Date.civil(2013, 6, 1), :my_custom_region)
225
- => [{:name => 'Company Founding',...}]
229
+ Holidays.on(Date.new(2013, 6, 1), :my_custom_region)
230
+ => [{:name => 'Company Founding',...}]
226
231
  ```
227
232
 
228
233
  Custom definition files must match the [syntax of the existing definition files](https://github.com/holidays/definitions/blob/master/doc/SYNTAX.md).
229
234
 
230
235
  Multiple files can be loaded at the same time:
231
236
 
232
- ```
233
- Holidays.load_custom('/home/user/holidays/custom_holidays1.yaml', '/home/user/holidays/custom_holidays2.yaml')
237
+ ```ruby
238
+ Holidays.load_custom(
239
+ '/home/user/holidays/custom_holidays1.yaml',
240
+ '/home/user/holidays/custom_holidays2.yaml'
241
+ )
234
242
  ```
235
243
 
236
244
  ## Extending Ruby's Date and Time classes
@@ -239,8 +247,9 @@ Holidays.load_custom('/home/user/holidays/custom_holidays1.yaml', '/home/user/ho
239
247
 
240
248
  To extend the 'Date' class:
241
249
 
242
- ```
250
+ ```ruby
243
251
  require 'holidays/core_extensions/date'
252
+
244
253
  class Date
245
254
  include Holidays::CoreExtensions::Date
246
255
  end
@@ -248,8 +257,8 @@ end
248
257
 
249
258
  Now you can check which holidays occur in Iceland on January 1, 2008:
250
259
 
251
- ```
252
- d = Date.civil(2008,7,1)
260
+ ```ruby
261
+ d = Date.new(2008,7,1)
253
262
 
254
263
  d.holidays(:is)
255
264
  => [{:name => 'Nýársdagur'}...]
@@ -257,8 +266,8 @@ d.holidays(:is)
257
266
 
258
267
  Or lookup Canada Day in different regions:
259
268
 
260
- ```
261
- d = Date.civil(2008,7,1)
269
+ ```ruby
270
+ d = Date.new(2008,7,1)
262
271
 
263
272
  d.holiday?(:ca) # Canada
264
273
  => true
@@ -272,23 +281,24 @@ d.holiday?(:fr) # France
272
281
 
273
282
  Or return the new date based on the options:
274
283
 
275
- ```
276
- d = Date.civil(2008,7,1)
284
+ ```ruby
285
+ d = Date.new(2008,7,1)
277
286
  d.change(:year => 2016, :month => 1, :day => 1)
278
287
  => #<Date: 2016-01-01 ((2457389j,0s,0n),+0s,2299161j)>
279
288
  ```
280
289
 
281
290
  Or you can calculate the day of the month:
282
291
 
283
- ```
292
+ ```ruby
284
293
  Date.calculate_mday(2015, 4, :first, 2)
285
294
  => 7
286
295
  ```
287
296
 
288
297
  ### Time
289
298
 
290
- ```
299
+ ```ruby
291
300
  require 'holidays/core_extensions/time'
301
+
292
302
  class Time
293
303
  include Holidays::CoreExtensions::Time
294
304
  end
@@ -296,8 +306,8 @@ end
296
306
 
297
307
  Find end of month for given date:
298
308
 
299
- ```
300
- d = Date.civil(2016,8,1)
309
+ ```ruby
310
+ d = Date.new(2016,8,1)
301
311
  d.end_of_month
302
312
  => #<Date: 2016-08-31 ((2457632j,0s,0n),+0s,2299161j)>
303
313
  ```
@@ -306,7 +316,7 @@ d.end_of_month
306
316
 
307
317
  If you are checking holidays regularly you can cache your results for improved performance. Run this before looking up a holiday (e.g. in an initializer):
308
318
 
309
- ```
319
+ ```ruby
310
320
  YEAR = 365 * 24 * 60 * 60
311
321
  Holidays.cache_between(Time.now, Time.now + 2 * YEAR, :ca, :us, :observed)
312
322
  ```
data/holidays.gemspec CHANGED
@@ -12,13 +12,18 @@ Gem::Specification.new do |gem|
12
12
  gem.homepage = 'https://github.com/holidays/holidays'
13
13
  gem.description = %q(A collection of Ruby methods to deal with statutory and other holidays. You deserve a holiday!)
14
14
  gem.summary = %q(A collection of Ruby methods to deal with statutory and other holidays.)
15
+ gem.metadata = {
16
+ 'changelog_uri' => "https://github.com/holidays/holidays/blob/master/CHANGELOG.md",
17
+ 'source_code_uri' => 'https://github.com/holidays/holidays',
18
+ 'bug_tracker_uri' => 'https://github.com/holidays/holidays/issues'
19
+ }
15
20
  gem.files = `git ls-files`.split("\n") - ['.gitignore', '.travis.yml']
16
21
  gem.test_files = gem.files.grep(/^test/)
17
22
  gem.require_paths = ['lib']
18
23
  gem.licenses = ['MIT']
19
- gem.required_ruby_version = '>= 2.4'
20
- gem.add_development_dependency 'bundler', '~> 2'
21
- gem.add_development_dependency 'rake', '~> 12'
24
+ gem.required_ruby_version = '>= 3.2'
25
+ gem.add_development_dependency 'bundler', '>= 2'
26
+ gem.add_development_dependency 'rake', '~> 13'
22
27
  gem.add_development_dependency 'simplecov', '~> 0.16'
23
28
  gem.add_development_dependency 'test-unit', '~> 3'
24
29
  gem.add_development_dependency 'mocha', '~> 1'
@@ -15,6 +15,7 @@ The following definition files are included in this installation:
15
15
  * generated_definitions/cl
16
16
  * generated_definitions/co
17
17
  * generated_definitions/cr
18
+ * generated_definitions/cy
18
19
  * generated_definitions/cz
19
20
  * generated_definitions/de
20
21
  * generated_definitions/dk
@@ -30,13 +31,16 @@ The following definition files are included in this installation:
30
31
  * generated_definitions/fr
31
32
  * generated_definitions/gb
32
33
  * generated_definitions/ge
34
+ * generated_definitions/gr
33
35
  * generated_definitions/hk
34
36
  * generated_definitions/hr
35
37
  * generated_definitions/hu
36
38
  * generated_definitions/ie
39
+ * generated_definitions/in
37
40
  * generated_definitions/is
38
41
  * generated_definitions/it
39
42
  * generated_definitions/jp
43
+ * generated_definitions/ke
40
44
  * generated_definitions/kr
41
45
  * generated_definitions/kz
42
46
  * generated_definitions/li
@@ -72,6 +76,7 @@ The following definition files are included in this installation:
72
76
  * generated_definitions/th
73
77
  * generated_definitions/tn
74
78
  * generated_definitions/tr
79
+ * generated_definitions/tsx
75
80
  * generated_definitions/ua
76
81
  * generated_definitions/unitednations
77
82
  * generated_definitions/ups
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Holidays
3
- REGIONS = [:ar, :at, :au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_wa, :au_tas, :au_tas_south, :au_qld_cairns, :au_qld_brisbane, :au_tas_north, :au_vic_melbourne, :be_fr, :be_nl, :br, :bg_en, :bg_bg, :ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :us, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cl, :co, :cr, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_bb, :de_th, :de_hb, :de_hh, :de_ni, :de_sh, :ecbtarget, :ee, :el, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :federalreserve, :federalreservebanks, :fedex, :fi, :fr_a, :fr_m, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :gb_con, :im, :gb_iom, :ge, :hr, :hk, :hu, :ie, :is, :it, :it_ve, :it_tv, :it_vr, :it_pd, :it_fi, :it_ge, :it_to, :it_rm, :it_vi, :it_bl, :it_ro, :kr, :kz, :li, :lt, :lv, :ma, :mt_mt, :mt_en, :mx, :mx_pue, :nerc, :nl, :lu, :no, :nyse, :nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl, :pe, :ph, :pl, :pt, :pt_li, :pt_po, :ro, :rs_cyrl, :rs_la, :ru, :se, :tn, :tr, :ua, :us_fl, :us_la, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_al, :us_ga, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_pa, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok, :unitednations, :ups, :za, :ve, :sk, :si, :jp, :vi, :sg, :my, :th, :ng]
3
+ REGIONS = [:ar, :at, :au, :au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa, :au_wa, :au_tas, :au_tas_south, :au_qld_cairns, :au_qld_brisbane, :au_tas_north, :au_vic_melbourne, :be_fr, :be_nl, :br, :bg_en, :bg_bg, :ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :us, :ch_zh, :ch_be, :ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_bs, :ch_bl, :ch_sh, :ch_ar, :ch_ai, :ch_sg, :ch_gr, :ch_ag, :ch_tg, :ch_ti, :ch_vd, :ch_ne, :ch_ge, :ch_ju, :ch_vs, :ch, :cl, :co, :cr, :cy, :cz, :dk, :de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_th, :de_bb, :de_hb, :de_hh, :de_ni, :de_sh, :ecbtarget, :ee, :es_pv, :es_na, :es_an, :es_ib, :es_cm, :es_mu, :es_m, :es_ar, :es_cl, :es_cn, :es_lo, :es_ga, :es_ce, :es_o, :es_ex, :es, :es_ct, :es_v, :es_vc, :federalreserve, :federalreservebanks, :fedex, :fi, :fr_a, :fr_m, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy, :gb_sct, :gb_con, :im, :gb_iom, :ge, :gr, :hr, :hk, :hu, :ie, :in, :in_wb, :in_od, :in_tr, :in_mh, :in_ar, :in_mz, :in_br, :in_hp, :in_gj, :in_sk, :in_ts, :in_jh, :in_py, :in_kl, :in_ka, :in_jk, :in_ap, :in_cg, :in_hr, :in_mp, :in_pb, :in_nl, :in_as, :in_ga, :is, :it, :it_ve, :it_tv, :it_vr, :it_pd, :it_fi, :it_ge, :it_to, :it_rm, :it_vi, :it_bl, :it_ro, :ke, :kr, :kz, :li, :lt, :lv, :ma, :mt_mt, :mt_en, :mx, :mx_pue, :nerc, :nl, :lu, :no, :nyse, :nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl, :pe, :ph, :pl, :pt, :pt_li, :pt_po, :ro, :rs_cyrl, :rs_la, :ru, :se, :tn, :tr, :tsx, :ua, :us_fl, :us_al, :us_la, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ga, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok, :unitednations, :ups, :za, :ve, :sk, :si, :jp, :vi, :sg, :my, :th, :ng]
4
4
 
5
- PARENT_REGION_LOOKUP = {:ar=>:ar, :at=>:at, :au=>:au, :au_nsw=>:au, :au_vic=>:au, :au_qld=>:au, :au_nt=>:au, :au_act=>:au, :au_sa=>:au, :au_wa=>:au, :au_tas=>:au, :au_tas_south=>:au, :au_qld_cairns=>:au, :au_qld_brisbane=>:au, :au_tas_north=>:au, :au_vic_melbourne=>:au, :be_fr=>:be_fr, :be_nl=>:be_nl, :br=>:br, :bg_en=>:bg, :bg_bg=>:bg, :ca=>:ca, :ca_qc=>:ca, :ca_ab=>:ca, :ca_sk=>:ca, :ca_on=>:ca, :ca_bc=>:ca, :ca_nb=>:ca, :ca_mb=>:ca, :ca_ns=>:ca, :ca_pe=>:ca, :ca_nl=>:ca, :ca_nt=>:ca, :ca_nu=>:ca, :ca_yt=>:ca, :us=>:us, :ch_zh=>:ch, :ch_be=>:ch, :ch_lu=>:ch, :ch_ur=>:ch, :ch_sz=>:ch, :ch_ow=>:ch, :ch_nw=>:ch, :ch_gl=>:ch, :ch_zg=>:ch, :ch_fr=>:ch, :ch_so=>:ch, :ch_bs=>:ch, :ch_bl=>:ch, :ch_sh=>:ch, :ch_ar=>:ch, :ch_ai=>:ch, :ch_sg=>:ch, :ch_gr=>:ch, :ch_ag=>:ch, :ch_tg=>:ch, :ch_ti=>:ch, :ch_vd=>:ch, :ch_ne=>:ch, :ch_ge=>:ch, :ch_ju=>:ch, :ch_vs=>:ch, :ch=>:ch, :cl=>:cl, :co=>:co, :cr=>:cr, :cz=>:cz, :dk=>:dk, :de=>:de, :de_bw=>:de, :de_by=>:de, :de_he=>:de, :de_nw=>:de, :de_rp=>:de, :de_sl=>:de, :de_sn_sorbian=>:de, :de_th_cath=>:de, :de_sn=>:de, :de_st=>:de, :de_be=>:de, :de_mv=>:de, :de_by_cath=>:de, :de_by_augsburg=>:de, :de_bb=>:de, :de_th=>:de, :de_hb=>:de, :de_hh=>:de, :de_ni=>:de, :de_sh=>:de, :ecbtarget=>:ecbtarget, :ee=>:ee, :el=>:el, :es_pv=>:es, :es_na=>:es, :es_an=>:es, :es_ib=>:es, :es_cm=>:es, :es_mu=>:es, :es_m=>:es, :es_ar=>:es, :es_cl=>:es, :es_cn=>:es, :es_lo=>:es, :es_ga=>:es, :es_ce=>:es, :es_o=>:es, :es_ex=>:es, :es=>:es, :es_ct=>:es, :es_v=>:es, :es_vc=>:es, :federalreserve=>:federalreserve, :federalreservebanks=>:federalreservebanks, :fedex=>:fedex, :fi=>:fi, :fr_a=>:fr, :fr_m=>:fr, :fr=>:fr, :gb=>:gb, :gb_eng=>:gb, :gb_wls=>:gb, :gb_eaw=>:gb, :gb_nir=>:gb, :je=>:gb, :gb_jsy=>:gb, :gg=>:gb, :gb_gsy=>:gb, :gb_sct=>:gb, :gb_con=>:gb, :im=>:gb, :gb_iom=>:gb, :ge=>:ge, :hr=>:hr, :hk=>:hk, :hu=>:hu, :ie=>:ie, :is=>:is, :it=>:it, :it_ve=>:it, :it_tv=>:it, :it_vr=>:it, :it_pd=>:it, :it_fi=>:it, :it_ge=>:it, :it_to=>:it, :it_rm=>:it, :it_vi=>:it, :it_bl=>:it, :it_ro=>:it, :kr=>:kr, :kz=>:kz, :li=>:li, :lt=>:lt, :lv=>:lv, :ma=>:ma, :mt_mt=>:mt_mt, :mt_en=>:mt_en, :mx=>:mx, :mx_pue=>:mx, :nerc=>:nerc, :nl=>:nl, :lu=>:lu, :no=>:no, :nyse=>:nyse, :nz=>:nz, :nz_sl=>:nz, :nz_we=>:nz, :nz_ak=>:nz, :nz_nl=>:nz, :nz_ne=>:nz, :nz_ot=>:nz, :nz_ta=>:nz, :nz_sc=>:nz, :nz_hb=>:nz, :nz_mb=>:nz, :nz_ca=>:nz, :nz_ch=>:nz, :nz_wl=>:nz, :pe=>:pe, :ph=>:ph, :pl=>:pl, :pt=>:pt, :pt_li=>:pt, :pt_po=>:pt, :ro=>:ro, :rs_cyrl=>:rs_cyrl, :rs_la=>:rs_la, :ru=>:ru, :se=>:se, :tn=>:tn, :tr=>:tr, :ua=>:ua, :us_fl=>:us, :us_la=>:us, :us_ct=>:us, :us_de=>:us, :us_gu=>:us, :us_hi=>:us, :us_in=>:us, :us_ky=>:us, :us_nj=>:us, :us_nc=>:us, :us_nd=>:us, :us_pr=>:us, :us_tn=>:us, :us_ms=>:us, :us_id=>:us, :us_ar=>:us, :us_tx=>:us, :us_dc=>:us, :us_md=>:us, :us_va=>:us, :us_vt=>:us, :us_ak=>:us, :us_ca=>:us, :us_me=>:us, :us_ma=>:us, :us_al=>:us, :us_ga=>:us, :us_ne=>:us, :us_mo=>:us, :us_sc=>:us, :us_wv=>:us, :us_vi=>:us, :us_ut=>:us, :us_ri=>:us, :us_az=>:us, :us_co=>:us, :us_il=>:us, :us_mt=>:us, :us_nm=>:us, :us_ny=>:us, :us_oh=>:us, :us_pa=>:us, :us_mi=>:us, :us_mn=>:us, :us_nv=>:us, :us_or=>:us, :us_sd=>:us, :us_wa=>:us, :us_wi=>:us, :us_wy=>:us, :us_ia=>:us, :us_ks=>:us, :us_nh=>:us, :us_ok=>:us, :unitednations=>:unitednations, :ups=>:ups, :za=>:za, :ve=>:southamerica, :sk=>:europe, :si=>:europe, :jp=>:jp, :vi=>:vi, :sg=>:sg, :my=>:my, :th=>:th, :ng=>:ng}
5
+ PARENT_REGION_LOOKUP = {ar: :ar, at: :at, au: :au, au_nsw: :au, au_vic: :au, au_qld: :au, au_nt: :au, au_act: :au, au_sa: :au, au_wa: :au, au_tas: :au, au_tas_south: :au, au_qld_cairns: :au, au_qld_brisbane: :au, au_tas_north: :au, au_vic_melbourne: :au, be_fr: :be_fr, be_nl: :be_nl, br: :br, bg_en: :bg, bg_bg: :bg, ca: :ca, ca_qc: :ca, ca_ab: :ca, ca_sk: :ca, ca_on: :ca, ca_bc: :ca, ca_nb: :ca, ca_mb: :ca, ca_ns: :ca, ca_pe: :ca, ca_nl: :ca, ca_nt: :ca, ca_nu: :ca, ca_yt: :ca, us: :us, ch_zh: :ch, ch_be: :ch, ch_lu: :ch, ch_ur: :ch, ch_sz: :ch, ch_ow: :ch, ch_nw: :ch, ch_gl: :ch, ch_zg: :ch, ch_fr: :ch, ch_so: :ch, ch_bs: :ch, ch_bl: :ch, ch_sh: :ch, ch_ar: :ch, ch_ai: :ch, ch_sg: :ch, ch_gr: :ch, ch_ag: :ch, ch_tg: :ch, ch_ti: :ch, ch_vd: :ch, ch_ne: :ch, ch_ge: :ch, ch_ju: :ch, ch_vs: :ch, ch: :ch, cl: :cl, co: :co, cr: :cr, cy: :cy, cz: :cz, dk: :dk, de: :de, de_bw: :de, de_by: :de, de_he: :de, de_nw: :de, de_rp: :de, de_sl: :de, de_sn_sorbian: :de, de_th_cath: :de, de_sn: :de, de_st: :de, de_be: :de, de_mv: :de, de_by_cath: :de, de_by_augsburg: :de, de_th: :de, de_bb: :de, de_hb: :de, de_hh: :de, de_ni: :de, de_sh: :de, ecbtarget: :ecbtarget, ee: :ee, es_pv: :es, es_na: :es, es_an: :es, es_ib: :es, es_cm: :es, es_mu: :es, es_m: :es, es_ar: :es, es_cl: :es, es_cn: :es, es_lo: :es, es_ga: :es, es_ce: :es, es_o: :es, es_ex: :es, es: :es, es_ct: :es, es_v: :es, es_vc: :es, federalreserve: :federalreserve, federalreservebanks: :federalreservebanks, fedex: :fedex, fi: :fi, fr_a: :fr, fr_m: :fr, fr: :fr, gb: :gb, gb_eng: :gb, gb_wls: :gb, gb_eaw: :gb, gb_nir: :gb, je: :gb, gb_jsy: :gb, gg: :gb, gb_gsy: :gb, gb_sct: :gb, gb_con: :gb, im: :gb, gb_iom: :gb, ge: :ge, gr: :gr, hr: :hr, hk: :hk, hu: :hu, ie: :ie, in: :in, in_wb: :in, in_od: :in, in_tr: :in, in_mh: :in, in_ar: :in, in_mz: :in, in_br: :in, in_hp: :in, in_gj: :in, in_sk: :in, in_ts: :in, in_jh: :in, in_py: :in, in_kl: :in, in_ka: :in, in_jk: :in, in_ap: :in, in_cg: :in, in_hr: :in, in_mp: :in, in_pb: :in, in_nl: :in, in_as: :in, in_ga: :in, is: :is, it: :it, it_ve: :it, it_tv: :it, it_vr: :it, it_pd: :it, it_fi: :it, it_ge: :it, it_to: :it, it_rm: :it, it_vi: :it, it_bl: :it, it_ro: :it, ke: :ke, kr: :kr, kz: :kz, li: :li, lt: :lt, lv: :lv, ma: :ma, mt_mt: :mt_mt, mt_en: :mt_en, mx: :mx, mx_pue: :mx, nerc: :nerc, nl: :nl, lu: :lu, no: :no, nyse: :nyse, nz: :nz, nz_sl: :nz, nz_we: :nz, nz_ak: :nz, nz_nl: :nz, nz_ne: :nz, nz_ot: :nz, nz_ta: :nz, nz_sc: :nz, nz_hb: :nz, nz_mb: :nz, nz_ca: :nz, nz_ch: :nz, nz_wl: :nz, pe: :pe, ph: :ph, pl: :pl, pt: :pt, pt_li: :pt, pt_po: :pt, ro: :ro, rs_cyrl: :rs_cyrl, rs_la: :rs_la, ru: :ru, se: :se, tn: :tn, tr: :tr, tsx: :tsx, ua: :ua, us_fl: :us, us_al: :us, us_la: :us, us_ct: :us, us_de: :us, us_gu: :us, us_hi: :us, us_in: :us, us_ky: :us, us_nj: :us, us_nc: :us, us_nd: :us, us_pa: :us, us_pr: :us, us_tn: :us, us_ms: :us, us_id: :us, us_ar: :us, us_tx: :us, us_dc: :us, us_md: :us, us_va: :us, us_vt: :us, us_ak: :us, us_ca: :us, us_me: :us, us_ma: :us, us_ga: :us, us_ne: :us, us_mo: :us, us_sc: :us, us_wv: :us, us_vi: :us, us_ut: :us, us_ri: :us, us_az: :us, us_co: :us, us_il: :us, us_mt: :us, us_nm: :us, us_ny: :us, us_oh: :us, us_mi: :us, us_mn: :us, us_nv: :us, us_or: :us, us_sd: :us, us_wa: :us, us_wi: :us, us_wy: :us, us_ia: :us, us_ks: :us, us_nh: :us, us_ok: :us, unitednations: :unitednations, ups: :ups, za: :za, ve: :southamerica, sk: :europe, si: :europe, jp: :jp, vi: :vi, sg: :sg, my: :my, th: :th, ng: :ng}
6
6
  end
@@ -27,25 +27,28 @@ module Holidays
27
27
  {:function => "march_pub_hol_sa(year)", :function_arguments => [:year], :name => "March Public Holiday", :regions => [:au_sa]},
28
28
  {:wday => 1, :week => 2, :name => "Canberra Day", :regions => [:au_act]}],
29
29
  4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:au, :au_vic]},
30
- {:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "ANZAC Day", :regions => [:au_nsw, :au_qld, :au_nt, :au_act, :au_sa, :au_tas]},
30
+ {:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "ANZAC Day", :regions => [:au_qld, :au_nt, :au_act, :au_sa]},
31
31
  {:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "ANZAC Day", :regions => [:au_wa]}],
32
32
  5 => [{:function => "qld_labour_day_may(year)", :function_arguments => [:year], :name => "Labour Day", :regions => [:au_qld]},
33
33
  {:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]},
34
34
  {:function => "may_pub_hol_sa(year)", :function_arguments => [:year], :name => "May Public Holiday", :regions => [:au_sa]},
35
35
  {:mday => 27, :function => "to_nearest_monday_after(date)", :function_arguments => [:date], :year_ranges => { :from => 2018 },:name => "Reconciliation Day", :regions => [:au_act]}],
36
36
  6 => [{:wday => 1, :week => 1, :name => "Western Australia Day", :regions => [:au_wa]},
37
- {:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_vic]},
37
+ {:wday => 1, :week => 2, :year_ranges => { :until => 2022 },:name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_vic]},
38
+ {:wday => 1, :week => 2, :year_ranges => { :from => 2023 },:name => "King's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_vic]},
38
39
  {:function => "qld_queens_birthday_june(year)", :function_arguments => [:year], :name => "Queen's Birthday", :regions => [:au_qld]},
39
40
  {:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
40
41
  7 => [{:wday => 5, :week => 3, :name => "Cairns Show", :regions => [:au_qld_cairns]}],
41
42
  8 => [{:function => "qld_brisbane_ekka_holiday(year)", :function_arguments => [:year], :name => "Ekka", :regions => [:au_qld_brisbane]}],
42
43
  9 => [{:mday => 22, :year_ranges => { :limited => [2022] },:name => "National Day of Mourning for Her Majesty Queen Elizabeth II", :regions => [:au]},
43
- {:wday => 1, :week => -1, :name => "Queen's Birthday", :regions => [:au_wa]},
44
+ {:wday => 1, :week => -1, :year_ranges => { :until => 2021 },:name => "Queen's Birthday", :regions => [:au_wa]},
45
+ {:wday => 1, :week => -1, :year_ranges => { :from => 2022 },:name => "King's Birthday", :regions => [:au_wa]},
44
46
  {:wday => 1, :week => -1, :year_ranges => { :until => 2017 },:name => "Family & Community Day", :regions => [:au_act]}],
45
47
  10 => [{:function => "afl_grand_final(year)", :function_arguments => [:year], :name => "Friday before the AFL Grand Final", :regions => [:au_vic]},
46
48
  {:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_act, :au_nsw, :au_sa]},
47
49
  {:function => "qld_labour_day_october(year)", :function_arguments => [:year], :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Labour Day", :regions => [:au_qld]},
48
- {:function => "qld_queens_bday_october(year)", :function_arguments => [:year], :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Queen's Birthday", :regions => [:au_qld]},
50
+ {:function => "qld_queens_bday_october(year)", :function_arguments => [:year], :year_ranges => { :until => 2022 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Queen's Birthday", :regions => [:au_qld]},
51
+ {:function => "qld_kings_bday_october(year)", :function_arguments => [:year], :year_ranges => { :from => 2023 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "King's Birthday", :regions => [:au_qld]},
49
52
  {:function => "hobart_show_day(year)", :function_arguments => [:year], :name => "Royal Hobart Show", :regions => [:au_tas_south]}],
50
53
  11 => [{:function => "g20_day_2014_only(year)", :function_arguments => [:year], :name => "G20 Day", :regions => [:au_qld_brisbane]},
51
54
  {:wday => 1, :week => 1, :name => "Recreation Day", :regions => [:au_tas_north]},
@@ -71,9 +74,17 @@ when 2017
71
74
  when 2018
72
75
  Date.civil(2018, 9, 28)
73
76
  when 2019
74
- Date.civil(2019,9, 27)
77
+ Date.civil(2019, 9, 27)
75
78
  when 2020
76
79
  Date.civil(2020, 10, 23)
80
+ when 2021
81
+ Date.civil(2021, 9, 24)
82
+ when 2022
83
+ Date.civil(2022, 9, 23)
84
+ when 2023
85
+ Date.civil(2023, 9, 29)
86
+ when 2024
87
+ Date.civil(2024, 9, 27)
77
88
  end
78
89
  },
79
90
 
@@ -87,6 +98,14 @@ else
87
98
  end
88
99
  },
89
100
 
101
+ "qld_kings_bday_october(year)" => Proc.new { |year|
102
+ if year >= 2023
103
+ Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 1, 1)
104
+ else
105
+ nil
106
+ end
107
+ },
108
+
90
109
  "qld_queens_birthday_june(year)" => Proc.new { |year|
91
110
  if year <= 2015
92
111
  Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 6, 2, 1)
@@ -12,13 +12,13 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:bg_en]},
16
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Разпети петък", :regions => [:bg_bg]},
17
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Holy Saturday", :regions => [:bg_en]},
18
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Велика събота", :regions => [:bg_bg]},
19
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:bg_en]},
20
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :name => "Възкресение Христово. Великден", :regions => [:bg_bg, :bg_bg]},
21
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:bg_en]}],
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:bg_en]},
16
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Разпети петък", :regions => [:bg_bg]},
17
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Holy Saturday", :regions => [:bg_en]},
18
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Велика събота", :regions => [:bg_bg]},
19
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:bg_en]},
20
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Възкресение Христово. Великден", :regions => [:bg_bg, :bg_bg]},
21
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:bg_en]}],
22
22
  1 => [{:mday => 1, :name => "New Year's Day", :regions => [:bg_en]},
23
23
  {:mday => 1, :name => "Нова година", :regions => [:bg_bg]}],
24
24
  3 => [{:mday => 3, :name => "Liberation Day", :regions => [:bg_en]},
@@ -22,7 +22,8 @@ module Holidays
22
22
  9 => [{:mday => 7, :name => "Proclamação da Independência", :regions => [:br]}],
23
23
  10 => [{:mday => 12, :name => "Dia de Nossa Senhora Aparecida", :regions => [:br]}],
24
24
  11 => [{:mday => 2, :name => "Dia de Finados", :regions => [:br]},
25
- {:mday => 15, :name => "Proclamação da República", :regions => [:br]}],
25
+ {:mday => 15, :name => "Proclamação da República", :regions => [:br]},
26
+ {:mday => 20, :year_ranges => { :from => 2024 },:name => "Dia Nacional de Zumbi e da Consciência Negra", :regions => [:br]}],
26
27
  12 => [{:mday => 25, :name => "Natal", :regions => [:br]}]
27
28
  }
28
29
  end
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/cy.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module CY # :nodoc:
9
+ def self.defined_regions
10
+ [:cy]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Μεγάλη Παρασκευή", :regions => [:cy]},
16
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Μεγάλο Σάββατο", :regions => [:cy]},
17
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Κυριακή του Πάσχα", :regions => [:cy]},
18
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Δευτέρα του Πάσχα", :regions => [:cy]},
19
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Τρίτη του Πάσχα", :regions => [:cy]},
20
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -48, :name => "Καθαρά Δευτέρα", :regions => [:cy]},
21
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Αγίου Πνεύματος", :regions => [:cy]}],
22
+ 1 => [{:mday => 1, :name => "Πρωτοχρονιά", :regions => [:cy]},
23
+ {:mday => 6, :name => "Θεοφάνεια", :regions => [:cy]}],
24
+ 3 => [{:mday => 25, :name => "Επέτειος της Επανάστασης του 1821", :regions => [:cy]}],
25
+ 4 => [{:mday => 1, :name => "Εθνική Ημέρα Κύπρου", :regions => [:cy]}],
26
+ 5 => [{:mday => 1, :name => "Πρωτομαγιά", :regions => [:cy]}],
27
+ 8 => [{:mday => 15, :name => "Κοίμηση της Θεοτόκου", :regions => [:cy]}],
28
+ 10 => [{:mday => 28, :name => "Επέτειος του Όχι", :regions => [:cy]}],
29
+ 12 => [{:mday => 25, :name => "Χριστούγεννα", :regions => [:cy]},
30
+ {:mday => 26, :name => "Δεύτερη ημέρα των Χριστουγέννων", :regions => [:cy]}]
31
+ }
32
+ end
33
+
34
+ def self.custom_methods
35
+ {
36
+
37
+ }
38
+ end
39
+ end
40
+ end
@@ -7,7 +7,7 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module DE # :nodoc:
9
9
  def self.defined_regions
10
- [:de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_bb, :de_th, :de_hb, :de_hh, :de_ni, :de_sh]
10
+ [:de, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn_sorbian, :de_th_cath, :de_sn, :de_st, :de_be, :de_mv, :de_by_cath, :de_by_augsburg, :de_th, :de_bb, :de_hb, :de_hh, :de_ni, :de_sh]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
@@ -23,21 +23,26 @@ module Holidays
23
23
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -48, :type => :informal, :name => "Rosenmontag", :regions => [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn]},
24
24
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -46, :type => :informal, :name => "Aschermittwoch", :regions => [:de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_sn]}],
25
25
  1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:de]},
26
- {:mday => 6, :name => "Heilige Drei Könige", :regions => [:de_bw, :de_by, :de_st]}],
26
+ {:mday => 6, :name => "Heilige Drei Könige", :regions => [:de_bw, :de_by]},
27
+ {:mday => 6, :year_ranges => { :from => 1991 },:name => "Heilige Drei Könige", :regions => [:de_st]}],
27
28
  3 => [{:mday => 8, :year_ranges => { :from => 2019 },:name => "Internationaler Frauentag", :regions => [:de_be]},
28
29
  {:mday => 8, :year_ranges => { :from => 2023 },:name => "Internationaler Frauentag", :regions => [:de_mv]}],
29
- 5 => [{:mday => 1, :name => "Tag der Arbeit", :regions => [:de]},
30
+ 5 => [{:mday => 1, :year_ranges => { :from => 1933 },:name => "Tag der Arbeit", :regions => [:de]},
30
31
  {:mday => 8, :year_ranges => { :limited => [2020] },:name => "Tag der Befreiung", :regions => [:de_be]}],
31
- 6 => [{:mday => 17, :year_ranges => { :between => 1954..1990 },:name => "Tag der Deutschen Einheit", :regions => [:de]}],
32
+ 6 => [{:mday => 17, :year_ranges => { :between => 1954..1990 },:name => "Tag der Deutschen Einheit", :regions => [:de]},
33
+ {:mday => 17, :year_ranges => { :limited => [2028] },:name => "Jahrestag des Volksaufstands in der DDR", :regions => [:de_be]}],
32
34
  8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:de_by_cath, :de_by_augsburg, :de_sl]},
33
- {:mday => 8, :name => "Friedensfest", :regions => [:de_by_augsburg]}],
35
+ {:mday => 8, :year_ranges => { :from => 1950 },:name => "Friedensfest", :regions => [:de_by_augsburg]}],
36
+ 9 => [{:mday => 20, :year_ranges => { :from => 2019 },:name => "Weltkindertag", :regions => [:de_th]}],
34
37
  10 => [{:mday => 3, :year_ranges => { :from => 1990 },:name => "Tag der Deutschen Einheit", :regions => [:de]},
35
38
  {:mday => 31, :name => "Reformationstag", :regions => [:de_bb, :de_mv, :de_sn, :de_st, :de_th]},
36
39
  {:mday => 31, :type => :informal, :name => "Reformationstag", :regions => [:de_bw]},
37
40
  {:mday => 31, :year_ranges => { :limited => [2017] },:name => "Reformationstag", :regions => [:de]},
38
41
  {:mday => 31, :year_ranges => { :from => 2018 },:name => "Reformationstag", :regions => [:de_hb, :de_hh, :de_ni, :de_sh]}],
39
42
  11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:de_bw, :de_by, :de_nw, :de_rp, :de_sl]},
40
- {:function => "de_buss_und_bettag(year)", :function_arguments => [:year], :name => "Buß- und Bettag", :regions => [:de_sn]}],
43
+ {:function => "de_buss_und_bettag(year)", :function_arguments => [:year], :year_ranges => { :from => 1990 },:name => "Buß- und Bettag", :regions => [:de_sn]},
44
+ {:function => "de_buss_und_bettag(year)", :function_arguments => [:year], :year_ranges => { :until => 1994 },:name => "Buß- und Bettag", :regions => [:de_bw, :de_by, :de_be, :de_hb, :de_hh, :de_he, :de_ni, :de_nw, :de_rp, :de_sl, :de_sh]},
45
+ {:function => "de_buss_und_bettag(year)", :function_arguments => [:year], :year_ranges => { :between => 1990..1994 },:name => "Buß- und Bettag", :regions => [:de_bb, :de_mv, :de_st, :de_th]}],
41
46
  12 => [{:mday => 24, :type => :informal, :name => "Heilig Abend", :regions => [:de]},
42
47
  {:mday => 25, :name => "1. Weihnachtstag", :regions => [:de]},
43
48
  {:mday => 26, :name => "2. Weihnachtstag", :regions => [:de]},