holidays 7.1.0 → 8.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -1
  3. data/README.md +3 -4
  4. data/doc/CONTRIBUTING.md +2 -1
  5. data/holidays.gemspec +5 -5
  6. data/lib/generated_definitions/MANIFEST +3 -0
  7. data/lib/generated_definitions/REGIONS.rb +2 -2
  8. data/lib/generated_definitions/au.rb +8 -2
  9. data/lib/generated_definitions/ca.rb +14 -13
  10. data/lib/generated_definitions/ch.rb +13 -1
  11. data/lib/generated_definitions/cl.rb +5 -5
  12. data/lib/generated_definitions/de.rb +5 -4
  13. data/lib/generated_definitions/es.rb +4 -2
  14. data/lib/generated_definitions/europe.rb +83 -23
  15. data/lib/generated_definitions/gb.rb +6 -4
  16. data/lib/generated_definitions/hr.rb +8 -6
  17. data/lib/generated_definitions/hu.rb +3 -2
  18. data/lib/generated_definitions/it.rb +14 -5
  19. data/lib/generated_definitions/jp.rb +26 -21
  20. data/lib/generated_definitions/kz.rb +38 -0
  21. data/lib/generated_definitions/lu.rb +2 -0
  22. data/lib/generated_definitions/lv.rb +52 -0
  23. data/lib/generated_definitions/mx.rb +3 -3
  24. data/lib/generated_definitions/ng.rb +33 -0
  25. data/lib/generated_definitions/northamerica.rb +21 -21
  26. data/lib/generated_definitions/ro.rb +5 -2
  27. data/lib/generated_definitions/southamerica.rb +5 -5
  28. data/lib/generated_definitions/tr.rb +5 -3
  29. data/lib/generated_definitions/ua.rb +6 -6
  30. data/lib/generated_definitions/us.rb +5 -6
  31. data/lib/holidays.rb +2 -0
  32. data/lib/holidays/definition/context/generator.rb +20 -34
  33. data/lib/holidays/definition/repository/holidays_by_month.rb +9 -1
  34. data/lib/holidays/finder/context/search.rb +34 -31
  35. data/lib/holidays/finder/rules/year_range.rb +30 -54
  36. data/lib/holidays/version.rb +1 -1
  37. data/test/coverage_report.rb +23 -5
  38. data/test/data/test_custom_year_range_holiday_defs.yaml +6 -10
  39. data/test/data/test_multiple_regions_with_conflicts_region_1.yaml +38 -0
  40. data/test/data/test_multiple_regions_with_conflicts_region_2.yaml +38 -0
  41. data/test/defs/test_defs_ca.rb +27 -5
  42. data/test/defs/test_defs_ch.rb +4 -0
  43. data/test/defs/test_defs_co.rb +3 -3
  44. data/test/defs/test_defs_de.rb +2 -0
  45. data/test/defs/test_defs_es.rb +2 -0
  46. data/test/defs/test_defs_europe.rb +156 -11
  47. data/test/defs/test_defs_federalreservebanks.rb +20 -0
  48. data/test/defs/test_defs_gb.rb +16 -0
  49. data/test/defs/test_defs_hr.rb +6 -6
  50. data/test/defs/test_defs_hu.rb +12 -4
  51. data/test/defs/test_defs_it.rb +20 -0
  52. data/test/defs/test_defs_jp.rb +5 -3
  53. data/test/defs/test_defs_kz.rb +39 -0
  54. data/test/defs/test_defs_lu.rb +6 -0
  55. data/test/defs/test_defs_lv.rb +90 -0
  56. data/test/defs/test_defs_ng.rb +29 -0
  57. data/test/defs/test_defs_northamerica.rb +33 -15
  58. data/test/defs/test_defs_ro.rb +14 -0
  59. data/test/defs/test_defs_southamerica.rb +3 -3
  60. data/test/defs/test_defs_tr.rb +7 -0
  61. data/test/defs/test_defs_us.rb +6 -10
  62. data/test/holidays/core_extensions/test_date.rb +3 -2
  63. data/test/holidays/definition/context/test_generator.rb +5 -18
  64. data/test/holidays/definition/repository/test_holidays_by_month.rb +121 -1
  65. data/test/holidays/finder/rules/test_year_range.rb +43 -47
  66. data/test/integration/test_available_regions.rb +1 -1
  67. data/test/integration/test_custom_year_range_holidays.rb +0 -7
  68. data/test/integration/test_holidays.rb +1 -23
  69. data/test/integration/test_holidays_between.rb +10 -0
  70. data/test/integration/test_multiple_regions_with_conflict.rb +29 -0
  71. metadata +28 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ffd1d2cf2a85fb43c632e03acf020bf9eedc1b7366ce2cf489fdb94a3b928d5
4
- data.tar.gz: b6ff441b3083db5aa217acc5641133f9b1412ba800d05723fab0b041be9ae0e7
3
+ metadata.gz: 8c89dde9832991fd0f84d05db793d847067c3098376433be9df47849a2d08144
4
+ data.tar.gz: e3801bb37130b4b87714a28e5cbda118b45a55064a2ae25210c684b8bc92e1a1
5
5
  SHA512:
6
- metadata.gz: b0f498c8b80a8da2ffa09aacfc1257b7f3eb99809b86a50b4f882d9ff9fcb44fed1b836fc942c144e3b58def610d795fe6d560a0cac255d8a28527d5f373a0ed
7
- data.tar.gz: 148811b0fd60dd3c0c0431ff515ba22970ffbb60b24961ed887327f512a156b16fdf1b8b9d843c14b405ed678ac84b9c31ac9284488d17130f460cdd1c82ee50
6
+ metadata.gz: bbd401c5db3e297a0994e6ec9036fcabf7507107432d7652711862c3c25e807d8b9fcaad380b1e4980e9988c3271ee6a5b27b1c606460e30f4a039166bd42c89
7
+ data.tar.gz: d20b6fdaaf5718ea2856f90ad886b326a37a19050d027f99163b078d562108484d066677fec92cab6c4188c1544dc938057c64b1ca5d510884e3034e2a5a464c
@@ -1,9 +1,35 @@
1
1
  # Ruby Holidays Gem CHANGELOG
2
2
 
3
+ ## 8.4.0
4
+
5
+ * Update submodule definitions.
6
+ * Thanks to contributors!!
7
+
8
+
9
+ ## 8.3.0
10
+
11
+ * Update submodule definitions.
12
+ * Remove test about feb 29 on non leap year.
13
+ * Thanks to contributors!!
14
+
15
+ ## 8.2.0
16
+
17
+ * Update submodule definitions. Thanks to contributors!!
18
+
19
+ ## 8.1.0
20
+
21
+ * Update submodule definitions, so that the newest holidays from the definition
22
+ gem are represent here.
23
+
24
+ ## 8.0.0
25
+
26
+ * Remove support for ruby 2.2 and ruby 2.3.
27
+ * Add support for latest ruby 2.6
28
+ * Update to [v5.0.1 definitions](https://github.com/holidays/definitions/releases/tag/v5.0.1). Please see the changelog for the definition details.
29
+
3
30
  ## 7.1.0
4
31
 
5
32
  * Update to [v4.1.0 definitions](https://github.com/holidays/definitions/releases/tag/v4.1.0). Please see the changelog for the definition details.
6
- * Add ruby 2.6 to automated tests
7
33
 
8
34
  ## 7.0.0
9
35
 
data/README.md CHANGED
@@ -14,11 +14,10 @@ gem install holidays
14
14
 
15
15
  This gem is tested with the following ruby versions:
16
16
 
17
- * 2.2.9
18
- * 2.3.8
19
17
  * 2.4.5
20
18
  * 2.5.3
21
- * JRuby 9.0.5.0
19
+ * 2.6.1
20
+ * JRuby 9.2.5.0
22
21
 
23
22
  ## Semver
24
23
 
@@ -136,7 +135,7 @@ Get all observed US Federal holidays between 2018 and 2019:
136
135
  from = Date.civil(2018,1,1)
137
136
  to = Date.civil(2019,12,31)
138
137
 
139
- Holidays.between(from, to, :federal_reserve, :observed)
138
+ Holidays.between(from, to, :federalreserve, :observed)
140
139
  => [{:name => "New Year's Day"....}
141
140
  {:name => "Birthday of Martin Luther King, Jr"....}]
142
141
  ```
@@ -51,7 +51,7 @@ make point-to-defs-master
51
51
  ## For non-definition functionality
52
52
 
53
53
  * Fork this repository
54
- * Make your changes
54
+ * Make your changes. Don't forget to run `make test` to execute the test suite!
55
55
  * Create a PR pointing back to `master`
56
56
 
57
57
  Don't worry about versioning, we'll handle it on our end.
@@ -63,6 +63,7 @@ Don't worry about versioning, we'll handle it on our end.
63
63
  We have included a few handy tasks to help you troubleshoot and test:
64
64
 
65
65
  * `make test` - runs the entire suite
66
+ * `bundle exec ruby <test-file-to-run>` - runs just the tests in the specified file
66
67
  * `REGION=<region> make test-region` - runs the tests for just that region
67
68
  * `make console` - launches an IRB session with the 'holidays' gem loaded for quick testing
68
69
  * `make update-defs` - runs the appropriate git submodule commands to pull the latest definitions
@@ -16,11 +16,11 @@ Gem::Specification.new do |gem|
16
16
  gem.test_files = gem.files.grep(/^test/)
17
17
  gem.require_paths = ['lib']
18
18
  gem.licenses = ['MIT']
19
- gem.required_ruby_version = '~> 2.2'
20
- gem.add_development_dependency 'bundler', '~> 1.16'
19
+ gem.required_ruby_version = '>= 2.4'
20
+ gem.add_development_dependency 'bundler', '~> 2'
21
21
  gem.add_development_dependency 'rake', '~> 12'
22
22
  gem.add_development_dependency 'simplecov', '~> 0.16'
23
- gem.add_development_dependency 'test-unit', '~> 3.2'
24
- gem.add_development_dependency 'mocha', '~> 1.7'
25
- gem.add_development_dependency 'pry', '~> 0.11'
23
+ gem.add_development_dependency 'test-unit', '~> 3'
24
+ gem.add_development_dependency 'mocha', '~> 1'
25
+ gem.add_development_dependency 'pry', '~> 0.12'
26
26
  end
@@ -38,15 +38,18 @@ The following definition files are included in this installation:
38
38
  * generated_definitions/it
39
39
  * generated_definitions/jp
40
40
  * generated_definitions/kr
41
+ * generated_definitions/kz
41
42
  * generated_definitions/li
42
43
  * generated_definitions/lt
43
44
  * generated_definitions/lu
45
+ * generated_definitions/lv
44
46
  * generated_definitions/ma
45
47
  * generated_definitions/mt_en
46
48
  * generated_definitions/mt_mt
47
49
  * generated_definitions/mx
48
50
  * generated_definitions/my
49
51
  * generated_definitions/nerc
52
+ * generated_definitions/ng
50
53
  * generated_definitions/nl
51
54
  * generated_definitions/no
52
55
  * generated_definitions/northamerica
@@ -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_by_cath, :de_by_augsburg, :de_bb, :de_mv, :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, :kr, :li, :lt, :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_il, :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_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]
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_by_cath, :de_by_augsburg, :de_bb, :de_mv, :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]
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_by_cath=>:de, :de_by_augsburg=>:de, :de_bb=>:de, :de_mv=>: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, :kr=>:kr, :li=>:li, :lt=>:lt, :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_il=>: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_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}
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_by_cath=>:de, :de_by_augsburg=>:de, :de_bb=>:de, :de_mv=>: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}
6
6
  end
@@ -15,7 +15,7 @@ module Holidays
15
15
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:au]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Easter Saturday", :regions => [:au_nsw, :au_vic, :au_qld, :au_nt, :au_act, :au_sa]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:au_nsw, :au_vic]},
18
- {:function => "easter(year)", :function_arguments => [:year], :year_ranges => [{:after => 2017}],:name => "Easter Sunday", :regions => [:au_qld, :au_act]},
18
+ {:function => "easter(year)", :function_arguments => [:year], :year_ranges => { :from => 2017 },:name => "Easter Sunday", :regions => [:au_qld, :au_act]},
19
19
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:au]}],
20
20
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:au, :au_nsw, :au_vic, :au_act, :au_sa, :au_wa, :au_nt, :au_qld]},
21
21
  {:mday => 1, :function => "to_monday_if_weekend(date)", :function_arguments => [:date], :name => "New Year's Day", :regions => [:au_tas]},
@@ -32,7 +32,7 @@ module Holidays
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
- 6 => [{:wday => 1, :week => 1, :name => "Foundation Day", :regions => [:au_wa]},
35
+ 6 => [{:wday => 1, :week => 1, :name => "Western Australia Day", :regions => [:au_wa]},
36
36
  {:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_tas, :au_nt, :au_vic]},
37
37
  {:function => "qld_queens_birthday_june(year)", :function_arguments => [:year], :name => "Queen's Birthday", :regions => [:au_qld]},
38
38
  {:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
@@ -66,6 +66,12 @@ when 2016
66
66
  Date.civil(2016, 9, 30)
67
67
  when 2017
68
68
  Date.civil(2017, 9, 29)
69
+ when 2018
70
+ Date.civil(2018, 9, 28)
71
+ when 2019
72
+ Date.civil(2019,9, 27)
73
+ when 2020
74
+ Date.civil(2020, 10, 23)
69
75
  end
70
76
  },
71
77
 
@@ -17,18 +17,19 @@ module Holidays
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :type => :informal, :name => "Easter Monday", :regions => [:ca]}],
18
18
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ca]},
19
19
  {:mday => 2, :name => "New Year's", :regions => [:ca_qc]}],
20
- 2 => [{:wday => 1, :week => 3, :year_ranges => [{:after => 1990}],:name => "Family Day", :regions => [:ca_ab]},
21
- {:wday => 1, :week => 3, :year_ranges => [{:after => 2007}],:name => "Family Day", :regions => [:ca_sk]},
22
- {:wday => 1, :week => 3, :year_ranges => [{:after => 2008}],:name => "Family Day", :regions => [:ca_on]},
23
- {:wday => 1, :week => 2, :year_ranges => [{:between => 2013..2018}],:name => "Family Day", :regions => [:ca_bc]},
24
- {:wday => 1, :week => 3, :year_ranges => [{:after => 2019}],:name => "Family Day", :regions => [:ca_bc]},
25
- {:wday => 1, :week => 3, :year_ranges => [{:after => 2018}],:name => "Family Day", :regions => [:ca_nb]},
20
+ 2 => [{:wday => 1, :week => 3, :year_ranges => { :from => 1990 },:name => "Family Day", :regions => [:ca_ab]},
21
+ {:wday => 1, :week => 3, :year_ranges => { :from => 2007 },:name => "Family Day", :regions => [:ca_sk]},
22
+ {:wday => 1, :week => 3, :year_ranges => { :from => 2008 },:name => "Family Day", :regions => [:ca_on]},
23
+ {:wday => 1, :week => 2, :year_ranges => { :between => 2013..2018 },:name => "Family Day", :regions => [:ca_bc]},
24
+ {:wday => 1, :week => 3, :year_ranges => { :from => 2019 },:name => "Family Day", :regions => [:ca_bc]},
25
+ {:wday => 1, :week => 3, :year_ranges => { :from => 2018 },:name => "Family Day", :regions => [:ca_nb]},
26
26
  {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]},
27
- {:wday => 1, :week => 3, :year_ranges => [{:after => 2015}],:name => "Nova Scotia Heritage Day", :regions => [:ca_ns]},
27
+ {:wday => 1, :week => 3, :year_ranges => { :from => 2015 },:name => "Nova Scotia Heritage Day", :regions => [:ca_ns]},
28
28
  {:wday => 1, :week => 3, :name => "Islander Day", :regions => [:ca_pe]},
29
29
  {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
30
30
  {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
31
- 3 => [{:mday => 23, :type => :informal, :name => "St. George's Day", :regions => [:ca_nl]},
31
+ 3 => [{:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:ca_nl]},
32
+ {:mday => 23, :type => :informal, :name => "St. George's Day", :regions => [:ca_nl]},
32
33
  {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
33
34
  5 => [{:function => "ca_victoria_day(year)", :function_arguments => [:year], :name => "Victoria Day", :regions => [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt]},
34
35
  {:function => "ca_victoria_day(year)", :function_arguments => [:year], :name => "National Patriotes Day", :regions => [:ca_qc]},
@@ -37,11 +38,11 @@ module Holidays
37
38
  6 => [{:mday => 24, :type => :informal, :name => "Discovery Day", :regions => [:ca_nl]},
38
39
  {:mday => 24, :name => "Fête Nationale", :regions => [:ca_qc]},
39
40
  {:mday => 21, :name => "National Aboriginal Day", :regions => [:ca_nt]},
40
- {:mday => 21, :year_ranges => [{:after => 2017}],:name => "National Aboriginal Day", :regions => [:ca_yt]},
41
+ {:mday => 21, :year_ranges => { :from => 2017 },:name => "National Aboriginal Day", :regions => [:ca_yt]},
41
42
  {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
42
43
  7 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Canada Day", :regions => [:ca]},
43
44
  {:mday => 12, :type => :informal, :name => "Orangemen's Day", :regions => [:ca_nl]},
44
- {:mday => 9, :name => "Nunavut Day", :regions => [:ca_nu]}],
45
+ {:mday => 9, :year_ranges => { :from => 2020 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Nunavut Day", :regions => [:ca_nu]}],
45
46
  8 => [{:wday => 1, :week => 1, :name => "B.C. Day", :regions => [:ca_bc]},
46
47
  {:wday => 1, :week => 1, :name => "Saskatchewan Day", :regions => [:ca_sk]},
47
48
  {:wday => 1, :week => 1, :type => :informal, :name => "Heritage Day", :regions => [:ca_ab]},
@@ -49,13 +50,13 @@ module Holidays
49
50
  {:wday => 1, :week => 1, :name => "Civic Holiday", :regions => [:ca_nt, :ca_nu]},
50
51
  {:wday => 1, :week => 1, :type => :informal, :name => "Civic Holiday", :regions => [:ca_on, :ca_pe]},
51
52
  {:wday => 1, :week => 1, :name => "New Brunswick Day", :regions => [:ca_nb]},
52
- {:wday => 1, :week => 1, :name => "Terry Fox Day", :regions => [:ca_mb]},
53
+ {:wday => 1, :week => 1, :type => :informal, :name => "Terry Fox Day", :regions => [:ca_mb]},
53
54
  {:wday => 1, :week => 3, :name => "Discovery Day", :regions => [:ca_yt]}],
54
55
  9 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:ca]}],
55
- 10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt]},
56
+ 10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_qc, :ca_sk, :ca_yt]},
56
57
  {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}],
57
58
  11 => [{:mday => 11, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Remembrance Day", :regions => [:ca_ab, :ca_sk, :ca_bc, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_nb, :ca_yt]}],
58
- 12 => [{:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:ca]},
59
+ 12 => [{:mday => 25, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:ca]},
59
60
  {:mday => 26, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "Boxing Day", :regions => [:ca_on]},
60
61
  {:mday => 26, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :type => :informal, :name => "Boxing Day", :regions => [:ca_ab, :ca_bc, :ca_mb, :ca_nb, :ca_nl, :ca_nt, :ca_ns, :ca_nu, :ca_pe, :ca_sk, :ca_yt]}],
61
62
  4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
@@ -32,7 +32,8 @@ module Holidays
32
32
  {:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_zg, :ch_fr, :ch_so, :ch_ai, :ch_ag, :ch_ti, :ch_vs, :ch_ju]}],
33
33
  9 => [{:mday => 22, :name => "Mauritiustag", :regions => [:ch_ai]},
34
34
  {:mday => 25, :name => "Bruderklausenfest", :regions => [:ch_ow]}],
35
- 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_ai, :ch_sg, :ch_ag, :ch_ti, :ch_vs, :ch_ju]}],
35
+ 11 => [{:function => "ch_be_zibelemaerit(year)", :function_arguments => [:year], :name => "Zibelemärit", :regions => [:ch_be]},
36
+ {:mday => 1, :name => "Allerheiligen", :regions => [:ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_ai, :ch_sg, :ch_ag, :ch_ti, :ch_vs, :ch_ju]}],
36
37
  12 => [{:mday => 8, :name => "Maria Empfängnis", :regions => [:ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_zg, :ch_fr, :ch_ai, :ch_ag, :ch_ti, :ch_vs]},
37
38
  {:mday => 25, :name => "Weihnachten", :regions => [:ch]},
38
39
  {:mday => 26, :name => "Stefanstag", :regions => [: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_vs, :ch_ne]},
@@ -76,6 +77,17 @@ end
76
77
  date
77
78
  },
78
79
 
80
+ "ch_be_zibelemaerit(year)" => Proc.new { |year|
81
+ date = Date.civil(year,11,1)
82
+ # Find the first Monday of November
83
+ until date.wday.eql? 1 do
84
+ date += 1
85
+ end
86
+ # There are 21 days between the first monday
87
+ # and the 4rth Monday after
88
+ date + 21
89
+ },
90
+
79
91
 
80
92
  }
81
93
  end
@@ -14,18 +14,18 @@ module Holidays
14
14
  {
15
15
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:cl]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Sábado Santo", :regions => [:cl]},
17
- {:function => "st_peter_st_paul_cl(year)", :function_arguments => [:year], :year_ranges => [{:after => 2000}],:name => "San Pedro y San Pablo", :regions => [:cl]},
18
- {:function => "other_churches_day_cl(year)", :function_arguments => [:year], :year_ranges => [{:after => 2008}],:name => "Día de las Iglesias Evangélicas y Protestantes", :regions => [:cl]}],
17
+ {:function => "st_peter_st_paul_cl(year)", :function_arguments => [:year], :year_ranges => { :from => 2000 },:name => "San Pedro y San Pablo", :regions => [:cl]},
18
+ {:function => "other_churches_day_cl(year)", :function_arguments => [:year], :year_ranges => { :from => 2008 },:name => "Día de las Iglesias Evangélicas y Protestantes", :regions => [:cl]}],
19
19
  1 => [{:mday => 1, :name => "Año Nuevo", :regions => [:cl]}],
20
20
  5 => [{:mday => 1, :name => "Día del Trabajo", :regions => [:cl]},
21
21
  {:mday => 21, :name => "Día de las Glorias Navales", :regions => [:cl]}],
22
- 6 => [{:mday => 29, :year_ranges => [{:before => 1999}],:name => "San Pedro y San Pablo", :regions => [:cl]}],
22
+ 6 => [{:mday => 29, :year_ranges => { :until => 1999 },:name => "San Pedro y San Pablo", :regions => [:cl]}],
23
23
  7 => [{:mday => 16, :name => "Día de la Virgen del Carmen", :regions => [:cl]}],
24
24
  8 => [{:mday => 15, :name => "Asunción de la Virgen", :regions => [:cl]}],
25
25
  9 => [{:mday => 18, :name => "Independencia Nacional", :regions => [:cl]},
26
26
  {:mday => 19, :name => "Día de las Glorias del Ejército", :regions => [:cl]}],
27
- 10 => [{:mday => 12, :year_ranges => [{:before => 1999}],:name => "Encuentro de Dos Mundos", :regions => [:cl]},
28
- {:function => "columbus_day_cl(year)", :function_arguments => [:year], :year_ranges => [{:after => 2000}],:name => "Encuentro de Dos Mundos", :regions => [:cl]}],
27
+ 10 => [{:mday => 12, :year_ranges => { :until => 1999 },:name => "Encuentro de Dos Mundos", :regions => [:cl]},
28
+ {:function => "columbus_day_cl(year)", :function_arguments => [:year], :year_ranges => { :from => 2000 },:name => "Encuentro de Dos Mundos", :regions => [:cl]}],
29
29
  11 => [{:mday => 1, :name => "Día de Todos los Santos", :regions => [:cl]}],
30
30
  12 => [{:mday => 8, :name => "Inmaculada Concepción de María", :regions => [:cl]},
31
31
  {:mday => 25, :name => "Navidad", :regions => [:cl]}]
@@ -24,15 +24,16 @@ module Holidays
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
26
  {:mday => 6, :name => "Heilige Drei Könige", :regions => [:de_bw, :de_by, :de_st]}],
27
- 3 => [{:mday => 8, :year_ranges => [{:after => 2019}],:name => "Internationaler Frauentag", :regions => [:de_be]}],
28
- 5 => [{:mday => 1, :name => "Tag der Arbeit", :regions => [:de]}],
27
+ 3 => [{:mday => 8, :year_ranges => { :from => 2019 },:name => "Internationaler Frauentag", :regions => [:de_be]}],
28
+ 5 => [{:mday => 1, :name => "Tag der Arbeit", :regions => [:de]},
29
+ {:mday => 8, :year_ranges => { :limited => [2020] },:name => "Tag der Befreiung", :regions => [:de_be]}],
29
30
  8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:de_by_cath, :de_by_augsburg, :de_sl]},
30
31
  {:mday => 8, :name => "Friedensfest", :regions => [:de_by_augsburg]}],
31
32
  10 => [{:mday => 3, :name => "Tag der Deutschen Einheit", :regions => [:de]},
32
33
  {:mday => 31, :name => "Reformationstag", :regions => [:de_bb, :de_mv, :de_sn, :de_st, :de_th]},
33
34
  {:mday => 31, :type => :informal, :name => "Reformationstag", :regions => [:de_bw]},
34
- {:mday => 31, :year_ranges => [{:limited => [2017]}],:name => "Reformationstag", :regions => [:de]},
35
- {:mday => 31, :year_ranges => [{:after => 2018}],:name => "Reformationstag", :regions => [:de_hb, :de_hh, :de_ni, :de_sh]}],
35
+ {:mday => 31, :year_ranges => { :limited => [2017] },:name => "Reformationstag", :regions => [:de]},
36
+ {:mday => 31, :year_ranges => { :from => 2018 },:name => "Reformationstag", :regions => [:de_hb, :de_hh, :de_ni, :de_sh]}],
36
37
  11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:de_bw, :de_by, :de_nw, :de_rp, :de_sl]},
37
38
  {:function => "de_buss_und_bettag(year)", :function_arguments => [:year], :name => "Buß- und Bettag", :regions => [:de_sn]}],
38
39
  12 => [{:mday => 24, :type => :informal, :name => "Heilig Abend", :regions => [:de]},
@@ -14,7 +14,8 @@ module Holidays
14
14
  {
15
15
  0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Jueves Santo", :regions => [: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]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:es]},
17
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lunes de Pascua", :regions => [:es_pv, :es_ct, :es_na, :es_v, :es_vc]}],
17
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lunes de Pascua", :regions => [:es_pv, :es_ct, :es_na, :es_v, :es_vc]},
18
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lunes de Pascua Granada", :regions => [:es_ct]}],
18
19
  1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Año Nuevo", :regions => [:es]},
19
20
  {:mday => 6, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Reyes", :regions => [:es]}],
20
21
  2 => [{:mday => 28, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Andalucía", :regions => [:es_an]}],
@@ -27,7 +28,8 @@ module Holidays
27
28
  {:mday => 30, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de las Canarias", :regions => [:es_cn]},
28
29
  {:mday => 31, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región Castilla-La Mancha", :regions => [:es_cm]}],
29
30
  6 => [{:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región de Murcia", :regions => [:es_mu]},
30
- {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de La Rioja", :regions => [:es_lo]}],
31
+ {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de La Rioja", :regions => [:es_lo]},
32
+ {:mday => 24, :name => "San Juan", :regions => [:es_ct, :es_vc]}],
31
33
  7 => [{:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]}],
32
34
  8 => [{:mday => 15, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Asunción", :regions => [:es]}],
33
35
  9 => [{:mday => 2, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Ceuta", :regions => [:es_ce]},
@@ -2,12 +2,12 @@
2
2
  module Holidays
3
3
  # This file is generated by the Ruby Holidays gem.
4
4
  #
5
- # Definitions loaded: definitions/at.yaml, definitions/be_fr.yaml, definitions/be_nl.yaml, definitions/ch.yaml, definitions/cz.yaml, definitions/dk.yaml, definitions/de.yaml, definitions/el.yaml, definitions/es.yaml, definitions/fr.yaml, definitions/gb.yaml, definitions/hr.yaml, definitions/hu.yaml, definitions/ie.yaml, definitions/is.yaml, definitions/it.yaml, definitions/li.yaml, definitions/lt.yaml, definitions/nl.yaml, definitions/no.yaml, definitions/pl.yaml, definitions/pt.yaml, definitions/ro.yaml, definitions/sk.yaml, definitions/si.yaml, definitions/bg.yaml, definitions/ua.yaml
5
+ # Definitions loaded: definitions/at.yaml, definitions/be_fr.yaml, definitions/be_nl.yaml, definitions/ch.yaml, definitions/cz.yaml, definitions/dk.yaml, definitions/de.yaml, definitions/el.yaml, definitions/es.yaml, definitions/fr.yaml, definitions/gb.yaml, definitions/hr.yaml, definitions/hu.yaml, definitions/ie.yaml, definitions/is.yaml, definitions/it.yaml, definitions/li.yaml, definitions/lt.yaml, definitions/lv.yaml, definitions/nl.yaml, definitions/no.yaml, definitions/pl.yaml, definitions/pt.yaml, definitions/ro.yaml, definitions/sk.yaml, definitions/si.yaml, definitions/bg.yaml, definitions/ua.yaml
6
6
  #
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module EUROPE # :nodoc:
9
9
  def self.defined_regions
10
- [:at, :be_fr, :be_nl, :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, :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_by_cath, :de_by_augsburg, :de_bb, :de_mv, :de_th, :de_hb, :de_hh, :de_ni, :de_sh, :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, :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, :hr, :hu, :ie, :is, :it, :li, :lt, :nl, :no, :pl, :pt, :pt_li, :pt_po, :ro, :sk, :si, :bg_en, :bg_bg, :ua]
10
+ [:at, :be_fr, :be_nl, :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, :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_by_cath, :de_by_augsburg, :de_bb, :de_mv, :de_th, :de_hb, :de_hh, :de_ni, :de_sh, :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, :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, :hr, :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, :li, :lt, :lv, :nl, :no, :pl, :pt, :pt_li, :pt_po, :ro, :sk, :si, :bg_en, :bg_bg, :ua]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
@@ -64,6 +64,7 @@ module Holidays
64
64
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Jueves Santo", :regions => [: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]},
65
65
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:es]},
66
66
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lunes de Pascua", :regions => [:es_pv, :es_ct, :es_na, :es_v, :es_vc]},
67
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lunes de Pascua Granada", :regions => [:es_ct]},
67
68
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Vendredi saint", :regions => [:fr_a, :fr_m]},
68
69
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Pâques", :regions => [:fr]},
69
70
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lundi de Pâques", :regions => [:fr]},
@@ -76,8 +77,9 @@ module Holidays
76
77
  {:function => "easter(year)", :function_arguments => [:year], :name => "Uskrs", :regions => [:hr]},
77
78
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Uskrsni ponedjeljak", :regions => [:hr]},
78
79
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Tijelovo", :regions => [:hr]},
79
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Húsvét hétfő", :regions => [:hu]},
80
- {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Pünkösd hétfő", :regions => [:hu]},
80
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2017 },:name => "Nagypéntek", :regions => [:hu]},
81
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Húsvéthétfő", :regions => [:hu]},
82
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Pünkösdhétfő", :regions => [:hu]},
81
83
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:ie]},
82
84
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -48, :name => "Bolludagur", :regions => [:is]},
83
85
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Sprengidagur", :regions => [:is]},
@@ -101,6 +103,11 @@ module Holidays
101
103
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Fronleichnam", :regions => [:li]},
102
104
  {:function => "easter(year)", :function_arguments => [:year], :name => "Šv. Velykos", :regions => [:lt]},
103
105
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Antroji Velykų diena", :regions => [:lt]},
106
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Lielā Piektdiena", :regions => [:lv]},
107
+ {:function => "easter(year)", :function_arguments => [:year], :name => "Pirmās Lieldienas", :regions => [:lv]},
108
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Otrās Lieldienas", :regions => [:lv]},
109
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Vasarsvētki", :regions => [:lv]},
110
+ {:function => "lv_song_and_dance_festival_end_date(year)", :function_arguments => [:year], :year_ranges => { :from => 2018 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Vispārējo latviešu Dziesmu un deju svētku noslēguma diena", :regions => [:lv]},
104
111
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Goede Vrijdag", :regions => [:nl]},
105
112
  {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Paasdag", :regions => [:nl]},
106
113
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Paasdag", :regions => [:nl]},
@@ -131,6 +138,7 @@ module Holidays
131
138
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Sexta-feira Santa", :regions => [:pt]},
132
139
  {:function => "easter(year)", :function_arguments => [:year], :name => "Páscoa", :regions => [:pt]},
133
140
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Corpo de Deus", :regions => [:pt]},
141
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2018 },:name => "Paștele - Vinerea Mare", :regions => [:ro]},
134
142
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Paștele - duminică", :regions => [:ro]},
135
143
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Paștele - luni", :regions => [:ro]},
136
144
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Rusaliile - 50", :regions => [:ro]},
@@ -168,7 +176,7 @@ module Holidays
168
176
  {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:gb]},
169
177
  {:mday => 2, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "2nd January", :regions => [:gb_sct]},
170
178
  {:mday => 1, :name => "Nova godina", :regions => [:hr]},
171
- {:mday => 6, :name => "Sveta tri kralja", :regions => [:hr]},
179
+ {:mday => 6, :name => "Bogojavljenje ili Sveta tri kralja", :regions => [:hr]},
172
180
  {:mday => 1, :name => "Újév", :regions => [:hu]},
173
181
  {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ie]},
174
182
  {:mday => 1, :name => "Nýársdagur", :regions => [:is]},
@@ -179,6 +187,7 @@ module Holidays
179
187
  {:mday => 1, :name => "Neujahrstag", :regions => [:li]},
180
188
  {:mday => 6, :name => "Heilige Drei Könige", :regions => [:li]},
181
189
  {:mday => 1, :name => "Naujieji metai", :regions => [:lt]},
190
+ {:mday => 1, :name => "Jaungada diena", :regions => [:lv]},
182
191
  {:mday => 1, :name => "Nieuwjaarsdag", :regions => [:nl]},
183
192
  {:mday => 1, :name => "Nyttårsdag", :regions => [:no]},
184
193
  {:mday => 1, :name => "Nowy Rok", :regions => [:pl]},
@@ -189,6 +198,7 @@ module Holidays
189
198
  {:mday => 1, :name => "Ano Novo", :regions => [:pt]},
190
199
  {:mday => 1, :name => "Anul nou", :regions => [:ro]},
191
200
  {:mday => 2, :name => "Anul nou", :regions => [:ro]},
201
+ {:mday => 24, :year_ranges => { :from => 2017 },:name => "Unirea Principatelor Române", :regions => [:ro]},
192
202
  {:mday => 1, :name => "Nový rok", :regions => [:sk]},
193
203
  {:mday => 6, :name => "Zjavenie Pána (Traja králi)", :regions => [:sk]},
194
204
  {:mday => 1, :name => "novo leto", :regions => [:si]},
@@ -205,6 +215,7 @@ module Holidays
205
215
  {:mday => 1, :type => :informal, :name => "Arbejdernes kampdag", :regions => [:dk]},
206
216
  {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]},
207
217
  {:mday => 1, :name => "Tag der Arbeit", :regions => [:de]},
218
+ {:mday => 8, :year_ranges => { :limited => [2020] },:name => "Tag der Befreiung", :regions => [:de_be]},
208
219
  {:mday => 1, :name => "Πρωτομαγιά", :regions => [:el]},
209
220
  {:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día del Trabajador", :regions => [:es]},
210
221
  {:mday => 2, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Fiesta de la Comunidad", :regions => [:es_m]},
@@ -212,17 +223,24 @@ module Holidays
212
223
  {:mday => 31, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región Castilla-La Mancha", :regions => [:es_cm]},
213
224
  {:mday => 1, :name => "Fête du travail", :regions => [:fr]},
214
225
  {:mday => 8, :name => "Victoire 1945", :regions => [:fr]},
215
- {:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
226
+ {:wday => 1, :week => 1, :year_ranges => { :until => 2019 },:name => "May Day", :regions => [:gb]},
227
+ {:mday => 8, :year_ranges => { :limited => [2020] },:name => "May Day", :regions => [:gb]},
228
+ {:wday => 1, :week => 1, :year_ranges => { :from => 2021 },:name => "May Day", :regions => [:gb]},
216
229
  {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
217
230
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]},
218
- {:mday => 1, :name => "Međunarodni praznik rada", :regions => [:hr]},
231
+ {:mday => 1, :name => "Praznik rada", :regions => [:hr]},
232
+ {:mday => 30, :year_ranges => { :from => 2020 },:name => "Dan državnosti", :regions => [:hr]},
219
233
  {:mday => 1, :name => "A munka ünnepe", :regions => [:hu]},
220
234
  {:wday => 1, :week => 1, :name => "May Day", :regions => [:ie]},
221
235
  {:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
222
236
  {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]},
223
237
  {:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]},
238
+ {:mday => 21, :name => "Festa di San Zeno", :regions => [:it_vr]},
224
239
  {:mday => 1, :name => "Tag der Arbeit", :regions => [:li]},
225
240
  {:mday => 1, :name => "Darbininkų diena", :regions => [:lt]},
241
+ {:mday => 1, :name => "Darba svētki, Latvijas Republikas Satversmes sapulces sasaukšanas diena", :regions => [:lv]},
242
+ {:mday => 4, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Latvijas Republikas Neatkarības atjaunošanas diena", :regions => [:lv]},
243
+ {:wday => 0, :week => 2, :name => "Mātes diena", :regions => [:lv]},
226
244
  {:mday => 4, :type => :informal, :name => "Dodenherdenking", :regions => [:nl]},
227
245
  {:mday => 5, :name => "Bevrijdingsdag", :regions => [:nl]},
228
246
  {:mday => 1, :name => "1. mai", :regions => [:no]},
@@ -243,7 +261,7 @@ module Holidays
243
261
  {:mday => 24, :name => "Slavic Literacy Day", :regions => [:bg_en]},
244
262
  {:mday => 24, :name => "Ден на славянската писменост", :regions => [:bg_bg]},
245
263
  {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День праці", :regions => [:ua]},
246
- {:mday => 2, :year_ranges => [{:before => 2017}],:name => "День міжнародної солідарності трудящих", :regions => [:ua]},
264
+ {:mday => 2, :year_ranges => { :until => 2017 },:name => "День міжнародної солідарності трудящих", :regions => [:ua]},
247
265
  {:mday => 9, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День перемоги над нацизмом у Другій світовій війні", :regions => [:ua]}],
248
266
  8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:at]},
249
267
  {:mday => 15, :name => "Assomption", :regions => [:be_fr]},
@@ -257,7 +275,7 @@ module Holidays
257
275
  {:mday => 15, :name => "Assomption", :regions => [:fr]},
258
276
  {:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
259
277
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]},
260
- {:mday => 5, :name => "Dan pobjede i domovinske zahvalnosti i dan hrvatskih branitelja", :regions => [:hr]},
278
+ {:mday => 5, :name => "Dan pobjede i domovinske zahvalnosti i Dan hrvatskih branitelja", :regions => [:hr]},
261
279
  {:mday => 15, :name => "Velika Gospa", :regions => [:hr]},
262
280
  {:mday => 20, :name => "Az államalapítás ünnepe", :regions => [:hu]},
263
281
  {:wday => 1, :week => 1, :name => "August Bank Holiday", :regions => [:ie]},
@@ -271,29 +289,30 @@ module Holidays
271
289
  {:mday => 15, :name => "Adormirea Maicii Domnului", :regions => [:ro]},
272
290
  {:mday => 29, :name => "Výročie Slovenského národného povstania", :regions => [:sk]},
273
291
  {:mday => 15, :name => "Marijino vnebovzetje", :regions => [:si]},
274
- {:mday => 24, :year_ranges => [{:after => 1992}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День Незалежності", :regions => [:ua]}],
292
+ {:mday => 24, :year_ranges => { :from => 1992 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День Незалежності", :regions => [:ua]}],
275
293
  10 => [{:mday => 26, :name => "Nationalfeiertag", :regions => [:at]},
276
294
  {:mday => 28, :name => "Den vzniku samostatného československého státu", :regions => [:cz]},
277
295
  {:mday => 3, :name => "Tag der Deutschen Einheit", :regions => [:de]},
278
296
  {:mday => 31, :name => "Reformationstag", :regions => [:de_bb, :de_mv, :de_sn, :de_st, :de_th]},
279
297
  {:mday => 31, :type => :informal, :name => "Reformationstag", :regions => [:de_bw]},
280
- {:mday => 31, :year_ranges => [{:limited => [2017]}],:name => "Reformationstag", :regions => [:de]},
281
- {:mday => 31, :year_ranges => [{:after => 2018}],:name => "Reformationstag", :regions => [:de_hb, :de_hh, :de_ni, :de_sh]},
298
+ {:mday => 31, :year_ranges => { :limited => [2017] },:name => "Reformationstag", :regions => [:de]},
299
+ {:mday => 31, :year_ranges => { :from => 2018 },:name => "Reformationstag", :regions => [:de_hb, :de_hh, :de_ni, :de_sh]},
282
300
  {:mday => 28, :name => "Επέτειος του Όχι", :regions => [:el]},
283
301
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Valencia", :regions => [:es_vc, :es_v]},
284
302
  {:mday => 12, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Hispanidad", :regions => [:es]},
285
- {:mday => 8, :name => "Dan neovisnosti", :regions => [:hr]},
303
+ {:mday => 8, :year_ranges => { :until => 2019 },:name => "Dan neovisnosti", :regions => [:hr]},
286
304
  {:mday => 23, :name => "1956-os forradalom és szabadságharc ünnepe", :regions => [:hu]},
287
305
  {:wday => 1, :week => -1, :name => "October Bank Holiday", :regions => [:ie]},
288
306
  {:mday => 14, :type => :informal, :name => "Dzień Nauczyciela (Dzień Edukacji Narodowej)", :regions => [:pl]},
289
307
  {:mday => 5, :name => "Dia da República", :regions => [:pt]},
290
308
  {:mday => 31, :name => "dan reformacije", :regions => [:si]},
291
- {:mday => 14, :year_ranges => [{:after => 2015}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День захисника України", :regions => [:ua]}],
309
+ {:mday => 14, :year_ranges => { :from => 2015 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День захисника України", :regions => [:ua]}],
292
310
  11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at]},
293
311
  {:mday => 1, :name => "Toussaint", :regions => [:be_fr]},
294
312
  {:mday => 11, :name => "Armistice 1918", :regions => [:be_fr]},
295
313
  {:mday => 1, :name => "Allerheiligen", :regions => [:be_nl]},
296
314
  {:mday => 11, :name => "Wapenstilstand 1918", :regions => [:be_nl]},
315
+ {:function => "ch_be_zibelemaerit(year)", :function_arguments => [:year], :name => "Zibelemärit", :regions => [:ch_be]},
297
316
  {:mday => 1, :name => "Allerheiligen", :regions => [:ch_lu, :ch_ur, :ch_sz, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_ai, :ch_sg, :ch_ag, :ch_ti, :ch_vs, :ch_ju]},
298
317
  {:mday => 17, :name => "Den boje za svobodu a demokracii", :regions => [:cz]},
299
318
  {:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
@@ -303,14 +322,18 @@ module Holidays
303
322
  {:mday => 1, :name => "Toussaint", :regions => [:fr]},
304
323
  {:mday => 11, :name => "Armistice 1918", :regions => [:fr]},
305
324
  {:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]},
306
- {:mday => 30, :year_ranges => [{:before => 2006}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :type => :informal, :name => "St. Andrew's Day", :regions => [:gb_sct]},
307
- {:mday => 30, :year_ranges => [{:after => 2007}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Andrew's Day", :regions => [:gb_sct]},
308
- {:mday => 1, :name => "Dan svih svetih", :regions => [:hr]},
325
+ {:mday => 30, :year_ranges => { :until => 2006 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :type => :informal, :name => "St. Andrew's Day", :regions => [:gb_sct]},
326
+ {:mday => 30, :year_ranges => { :from => 2007 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Andrew's Day", :regions => [:gb_sct]},
327
+ {:mday => 1, :name => "Svi sveti", :regions => [:hr]},
328
+ {:mday => 18, :year_ranges => { :from => 2020 },:name => "Dan sjećanja na žrtve Domovinskog rata i Dan sjećanja na žrtvu Vukovara i Škabrnje", :regions => [:hr]},
309
329
  {:mday => 1, :name => "Mindenszentek", :regions => [:hu]},
310
330
  {:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]},
311
331
  {:mday => 1, :name => "Ognissanti", :regions => [:it]},
332
+ {:mday => 11, :name => "Festa di San Martino", :regions => [:it_bl]},
333
+ {:mday => 26, :name => "Festa di San Bellino", :regions => [:it_ro]},
312
334
  {:mday => 1, :name => "Allerheiligen", :regions => [:li]},
313
335
  {:mday => 1, :name => "Visų šventųjų diena", :regions => [:lt]},
336
+ {:mday => 18, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Latvijas Republikas Proklamēšanas diena", :regions => [:lv]},
314
337
  {:mday => 1, :name => "Wszystkich Świętych", :regions => [:pl]},
315
338
  {:mday => 2, :type => :informal, :name => "Dzień Zaduszny", :regions => [:pl]},
316
339
  {:mday => 11, :name => "Narodowe Święto Niepodległości", :regions => [:pl]},
@@ -373,6 +396,10 @@ module Holidays
373
396
  {:mday => 24, :name => "Šv. Kūčios", :regions => [:lt]},
374
397
  {:mday => 25, :name => "Šv. Kalėdos", :regions => [:lt]},
375
398
  {:mday => 26, :name => "Antroji Kalėdų diena", :regions => [:lt]},
399
+ {:mday => 24, :name => "Ziemassvētku vakars", :regions => [:lv]},
400
+ {:mday => 25, :name => "Pirmie Ziemassvētki", :regions => [:lv]},
401
+ {:mday => 26, :name => "Otrie Ziemassvētki", :regions => [:lv]},
402
+ {:mday => 31, :name => "Vecgada diena", :regions => [:lv]},
376
403
  {:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]},
377
404
  {:mday => 25, :name => "Eerste Kerstdag", :regions => [:nl]},
378
405
  {:mday => 26, :name => "Tweede Kerstdag", :regions => [:nl]},
@@ -403,7 +430,7 @@ module Holidays
403
430
  {:mday => 25, :name => "Рождество Христово. Коледа", :regions => [:bg_bg]},
404
431
  {:mday => 26, :name => "Christmas", :regions => [:bg_en]},
405
432
  {:mday => 26, :name => "Рождество Христово. Коледа", :regions => [:bg_bg]},
406
- {:mday => 25, :year_ranges => [{:after => 2017}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Різдво Христове", :regions => [:ua]}],
433
+ {:mday => 25, :year_ranges => { :from => 2017 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Різдво Христове", :regions => [:ua]}],
407
434
  7 => [{:mday => 21, :name => "Fête nationale", :regions => [:be_fr]},
408
435
  {:mday => 21, :name => "Nationale Feestdag", :regions => [:be_nl]},
409
436
  {:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
@@ -411,13 +438,13 @@ module Holidays
411
438
  {:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]},
412
439
  {:mday => 14, :name => "Fête nationale", :regions => [:fr]},
413
440
  {:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
414
- {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]},
441
+ {:mday => 12, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Battle of the Boyne", :regions => [:gb_nir]},
415
442
  {:mday => 6, :name => "Valstybės diena", :regions => [:lt]},
416
443
  {:mday => 5, :name => "Sviatok svätého Cyrila a svätého Metoda", :regions => [:sk]},
417
- {:mday => 16, :year_ranges => [{:limited => [1991]}],:name => "День Незалежності України", :regions => [:ua]}],
444
+ {:mday => 16, :year_ranges => { :limited => [1991] },:name => "День Незалежності України", :regions => [:ua]}],
418
445
  3 => [{:mday => 1, :name => "Instauration de la République", :regions => [:ch_ne]},
419
446
  {:mday => 19, :name => "Josephstag", :regions => [:ch_ur, :ch_sz, :ch_nw, :ch_ti, :ch_vs]},
420
- {:mday => 8, :year_ranges => [{:after => 2019}],:name => "Internationaler Frauentag", :regions => [:de_be]},
447
+ {:mday => 8, :year_ranges => { :from => 2019 },:name => "Internationaler Frauentag", :regions => [:de_be]},
421
448
  {:mday => 25, :name => "Επέτειος της Επανάστασης του 1821", :regions => [:el]},
422
449
  {:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de las Islas Baleares", :regions => [:es_ib]},
423
450
  {:mday => 19, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "San José", :regions => [:es_v, :es_vc, :es_cm, :es_mu, :es_m]},
@@ -440,6 +467,8 @@ module Holidays
440
467
  {:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "San Jorge, Día de Aragón", :regions => [:es_ar]},
441
468
  {:function => "is_sumardagurinn_fyrsti(year)", :function_arguments => [:year], :name => "Sumardagurinn fyrsti", :regions => [:is]},
442
469
  {:mday => 25, :name => "Festa della Liberazione", :regions => [:it]},
470
+ {:mday => 25, :name => "Festa di San Marco Evangelista", :regions => [:it_ve]},
471
+ {:mday => 27, :name => "Festa di San Liberale", :regions => [:it_tv]},
443
472
  {:mday => 27, :name => "Koningsdag", :regions => [:nl]},
444
473
  {:mday => 1, :type => :informal, :name => "Prima Aprilis", :regions => [:pl]},
445
474
  {:mday => 22, :type => :informal, :name => "Międzynarodowy Dzień Ziemi", :regions => [:pl]},
@@ -452,19 +481,26 @@ module Holidays
452
481
  {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]},
453
482
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región de Murcia", :regions => [:es_mu]},
454
483
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de La Rioja", :regions => [:es_lo]},
484
+ {:mday => 24, :name => "San Juan", :regions => [:es_ct, :es_vc]},
455
485
  {:mday => 22, :name => "Dan antifašističke borbe", :regions => [:hr]},
456
- {:mday => 25, :name => "Dan državnosti", :regions => [:hr]},
486
+ {:mday => 25, :year_ranges => { :until => 2019 },:name => "Dan državnosti", :regions => [:hr]},
457
487
  {:wday => 1, :week => 1, :name => "June Bank Holiday", :regions => [:ie]},
458
488
  {:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
459
489
  {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]},
460
490
  {:mday => 2, :name => "Festa della Repubblica", :regions => [:it]},
491
+ {:mday => 13, :name => "Festa di Sant'Antonio di Padova", :regions => [:it_pd]},
492
+ {:mday => 24, :name => "Festa di San Giovanni Battista", :regions => [:it_fi, :it_ge, :it_to]},
493
+ {:mday => 29, :name => "Festa di San Pietro e Paolo", :regions => [:it_rm]},
461
494
  {:mday => 24, :name => "Joninės", :regions => [:lt]},
495
+ {:mday => 23, :name => "Līgo diena", :regions => [:lv]},
496
+ {:mday => 24, :name => "Jāņu diena", :regions => [:lv]},
462
497
  {:mday => 23, :type => :informal, :name => "Dzień Ojca", :regions => [:pl]},
463
498
  {:mday => 10, :name => "Dia de Portugal", :regions => [:pt]},
464
499
  {:mday => 13, :name => "Dia de Santo António", :regions => [:pt_li]},
465
500
  {:mday => 24, :name => "Dia de São João", :regions => [:pt_po]},
501
+ {:mday => 1, :year_ranges => { :from => 2017 },:name => "Ziua Copilului", :regions => [:ro]},
466
502
  {:mday => 25, :name => "dan državnosti", :regions => [:si]},
467
- {:mday => 28, :year_ranges => [{:after => 1997}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День Конституції", :regions => [:ua]}],
503
+ {:mday => 28, :year_ranges => { :from => 1997 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День Конституції", :regions => [:ua]}],
468
504
  9 => [{:mday => 22, :name => "Mauritiustag", :regions => [:ch_ai]},
469
505
  {:mday => 25, :name => "Bruderklausenfest", :regions => [:ch_ow]},
470
506
  {:mday => 28, :name => "Den české státnosti", :regions => [:cz]},
@@ -473,7 +509,9 @@ module Holidays
473
509
  {:mday => 8, :name => "Día de Extremadura", :regions => [:es_ex]},
474
510
  {:mday => 11, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Fiesta Nacional de Cataluña", :regions => [:es_ct]},
475
511
  {:mday => 24, :name => "La Mercè", :regions => [:es_ct]},
512
+ {:mday => 8, :name => "Festa della Madonna di Monte Berico", :regions => [:it_vi]},
476
513
  {:mday => 8, :name => "Maria Geburt", :regions => [:li]},
514
+ {:mday => 24, :year_ranges => { :limited => [2018] },:name => "Viņa Svētības pāvesta Franciska pastorālās vizītes Latvijā diena", :regions => [:lv]},
477
515
  {:mday => 30, :type => :informal, :name => "Dzień Chłopaka", :regions => [:pl]},
478
516
  {:mday => 1, :name => "Deň Ústavy Slovenskej republiky", :regions => [:sk]},
479
517
  {:mday => 15, :name => "Sedembolestná Panna Mária", :regions => [:sk]},
@@ -527,6 +565,17 @@ end
527
565
  date
528
566
  },
529
567
 
568
+ "ch_be_zibelemaerit(year)" => Proc.new { |year|
569
+ date = Date.civil(year,11,1)
570
+ # Find the first Monday of November
571
+ until date.wday.eql? 1 do
572
+ date += 1
573
+ end
574
+ # There are 21 days between the first monday
575
+ # and the 4rth Monday after
576
+ date + 21
577
+ },
578
+
530
579
  "de_buss_und_bettag(year)" => Proc.new { |year|
531
580
  date = Date.civil(year,11,23)
532
581
  if date.wday > 3
@@ -547,6 +596,17 @@ end
547
596
  date
548
597
  },
549
598
 
599
+ "lv_song_and_dance_festival_end_date(year)" => Proc.new { |year|
600
+ case year
601
+ when 2018
602
+ # https://likumi.lv/ta/id/281541 (Ministru kabineta rīkojums Nr. 252 "Par XXVI Vispārējo latviešu dziesmu un XVI Deju svētku norises laiku")
603
+ Date.new(2018, 7, 8)
604
+ when 2023
605
+ # Event's period/next year is known, but precise dates aren't.
606
+ # Previously, dates were announced 2 years ahead, so at ~2021-05 this method would need to be revisited.
607
+ end
608
+ },
609
+
550
610
  "pl_trzech_kroli(year)" => Proc.new { |year|
551
611
  year >= 2011 ? 6 : nil
552
612
  },