holidays 6.4.0 → 8.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +5 -5
  2. data/.gitmodules +1 -1
  3. data/CHANGELOG.md +80 -0
  4. data/Makefile +17 -4
  5. data/README.md +236 -101
  6. data/Rakefile +1 -1
  7. data/bin/console +0 -0
  8. data/bin/setup +1 -0
  9. data/doc/CONTRIBUTING.md +72 -0
  10. data/{MAINTAINERS.md → doc/MAINTAINERS.md} +5 -6
  11. data/{REFERENCES → doc/REFERENCES} +0 -0
  12. data/holidays.gemspec +8 -9
  13. data/lib/generated_definitions/MANIFEST +12 -4
  14. data/lib/generated_definitions/REGIONS.rb +2 -2
  15. data/lib/generated_definitions/ar.rb +30 -11
  16. data/lib/generated_definitions/at.rb +2 -2
  17. data/lib/generated_definitions/au.rb +26 -8
  18. data/lib/generated_definitions/be_fr.rb +2 -2
  19. data/lib/generated_definitions/be_nl.rb +2 -2
  20. data/lib/generated_definitions/bg.rb +2 -2
  21. data/lib/generated_definitions/br.rb +2 -2
  22. data/lib/generated_definitions/ca.rb +24 -17
  23. data/lib/generated_definitions/ch.rb +16 -4
  24. data/lib/generated_definitions/cl.rb +7 -10
  25. data/lib/generated_definitions/co.rb +121 -0
  26. data/lib/generated_definitions/cr.rb +2 -2
  27. data/lib/generated_definitions/cz.rb +2 -2
  28. data/lib/generated_definitions/de.rb +8 -5
  29. data/lib/generated_definitions/dk.rb +2 -2
  30. data/lib/generated_definitions/{ecb_target.rb → ecbtarget.rb} +10 -10
  31. data/lib/generated_definitions/ee.rb +2 -2
  32. data/lib/generated_definitions/el.rb +2 -2
  33. data/lib/generated_definitions/es.rb +8 -5
  34. data/lib/generated_definitions/europe.rb +114 -29
  35. data/lib/generated_definitions/federalreserve.rb +35 -0
  36. data/lib/generated_definitions/{federal_reserve.rb → federalreservebanks.rb} +15 -14
  37. data/lib/generated_definitions/fedex.rb +2 -2
  38. data/lib/generated_definitions/fi.rb +2 -2
  39. data/lib/generated_definitions/fr.rb +2 -2
  40. data/lib/generated_definitions/gb.rb +15 -8
  41. data/lib/generated_definitions/ge.rb +2 -2
  42. data/lib/generated_definitions/hk.rb +2 -2
  43. data/lib/generated_definitions/hr.rb +10 -8
  44. data/lib/generated_definitions/hu.rb +4 -3
  45. data/lib/generated_definitions/ie.rb +2 -2
  46. data/lib/generated_definitions/is.rb +2 -2
  47. data/lib/generated_definitions/it.rb +16 -7
  48. data/lib/generated_definitions/jp.rb +34 -15
  49. data/lib/generated_definitions/kr.rb +2 -2
  50. data/lib/generated_definitions/kz.rb +38 -0
  51. data/lib/generated_definitions/li.rb +2 -2
  52. data/lib/generated_definitions/lt.rb +2 -2
  53. data/lib/generated_definitions/lu.rb +4 -2
  54. data/lib/generated_definitions/lv.rb +55 -0
  55. data/lib/generated_definitions/ma.rb +2 -2
  56. data/lib/generated_definitions/mt_en.rb +2 -2
  57. data/lib/generated_definitions/mt_mt.rb +2 -2
  58. data/lib/generated_definitions/mx.rb +7 -7
  59. data/lib/generated_definitions/my.rb +2 -2
  60. data/lib/generated_definitions/nerc.rb +2 -2
  61. data/lib/generated_definitions/ng.rb +33 -0
  62. data/lib/generated_definitions/nl.rb +2 -2
  63. data/lib/generated_definitions/no.rb +2 -2
  64. data/lib/generated_definitions/{north_america.rb → northamerica.rb} +33 -26
  65. data/lib/generated_definitions/nyse.rb +3 -2
  66. data/lib/generated_definitions/nz.rb +41 -3
  67. data/lib/generated_definitions/pe.rb +2 -2
  68. data/lib/generated_definitions/ph.rb +2 -2
  69. data/lib/generated_definitions/pl.rb +2 -2
  70. data/lib/generated_definitions/pt.rb +2 -2
  71. data/lib/generated_definitions/ro.rb +6 -3
  72. data/lib/generated_definitions/rs_cyrl.rb +3 -3
  73. data/lib/generated_definitions/rs_la.rb +3 -3
  74. data/lib/generated_definitions/ru.rb +2 -2
  75. data/lib/generated_definitions/scandinavia.rb +2 -2
  76. data/lib/generated_definitions/se.rb +2 -2
  77. data/lib/generated_definitions/sg.rb +2 -2
  78. data/lib/generated_definitions/si.rb +4 -3
  79. data/lib/generated_definitions/sk.rb +2 -2
  80. data/lib/generated_definitions/southamerica.rb +247 -0
  81. data/lib/generated_definitions/th.rb +36 -0
  82. data/lib/generated_definitions/tn.rb +2 -2
  83. data/lib/generated_definitions/tr.rb +7 -5
  84. data/lib/generated_definitions/ua.rb +37 -0
  85. data/lib/generated_definitions/{united_nations.rb → unitednations.rb} +61 -61
  86. data/lib/generated_definitions/ups.rb +2 -2
  87. data/lib/generated_definitions/us.rb +9 -9
  88. data/lib/generated_definitions/ve.rb +2 -2
  89. data/lib/generated_definitions/vi.rb +2 -2
  90. data/lib/generated_definitions/za.rb +3 -3
  91. data/lib/holidays/core_extensions/time.rb +3 -3
  92. data/lib/holidays/definition/context/generator.rb +23 -70
  93. data/lib/holidays/definition/context/load.rb +1 -1
  94. data/lib/holidays/definition/generator/module.rb +54 -0
  95. data/lib/holidays/definition/generator/regions.rb +7 -2
  96. data/lib/holidays/definition/parser/custom_method.rb +2 -2
  97. data/lib/holidays/definition/repository/cache.rb +2 -1
  98. data/lib/holidays/definition/repository/holidays_by_month.rb +9 -1
  99. data/lib/holidays/factory/definition.rb +7 -0
  100. data/lib/holidays/finder/context/between.rb +6 -7
  101. data/lib/holidays/finder/context/dates_driver_builder.rb +5 -11
  102. data/lib/holidays/finder/context/next_holiday.rb +12 -12
  103. data/lib/holidays/finder/context/parse_options.rb +0 -6
  104. data/lib/holidays/finder/context/search.rb +39 -32
  105. data/lib/holidays/finder/rules/year_range.rb +30 -54
  106. data/lib/holidays/version.rb +1 -1
  107. data/lib/holidays.rb +14 -7
  108. data/test/coverage_report.rb +23 -7
  109. data/test/data/test_custom_informal_holidays_defs.yaml +11 -0
  110. data/test/data/test_custom_year_range_holiday_defs.yaml +6 -10
  111. data/test/data/test_multiple_regions_with_conflicts_region_1.yaml +38 -0
  112. data/test/data/test_multiple_regions_with_conflicts_region_2.yaml +38 -0
  113. data/test/defs/test_defs_ar.rb +30 -6
  114. data/test/defs/test_defs_at.rb +5 -3
  115. data/test/defs/test_defs_au.rb +29 -0
  116. data/test/defs/test_defs_be_fr.rb +10 -0
  117. data/test/defs/test_defs_be_nl.rb +10 -0
  118. data/test/defs/test_defs_ca.rb +63 -8
  119. data/test/defs/test_defs_ch.rb +6 -0
  120. data/test/defs/test_defs_co.rb +113 -0
  121. data/test/defs/test_defs_de.rb +7 -1
  122. data/test/defs/{test_defs_ecb_target.rb → test_defs_ecbtarget.rb} +11 -11
  123. data/test/defs/test_defs_es.rb +2 -0
  124. data/test/defs/test_defs_europe.rb +250 -15
  125. data/test/defs/test_defs_federalreserve.rb +119 -0
  126. data/test/defs/test_defs_federalreservebanks.rb +251 -0
  127. data/test/defs/test_defs_gb.rb +42 -0
  128. data/test/defs/test_defs_hr.rb +6 -6
  129. data/test/defs/test_defs_hu.rb +12 -4
  130. data/test/defs/test_defs_it.rb +20 -0
  131. data/test/defs/test_defs_jp.rb +30 -2
  132. data/test/defs/test_defs_kz.rb +39 -0
  133. data/test/defs/test_defs_lu.rb +6 -0
  134. data/test/defs/test_defs_lv.rb +96 -0
  135. data/test/defs/test_defs_mx.rb +3 -1
  136. data/test/defs/test_defs_ng.rb +29 -0
  137. data/test/defs/{test_defs_north_america.rb → test_defs_northamerica.rb} +77 -20
  138. data/test/defs/test_defs_nyse.rb +7 -0
  139. data/test/defs/test_defs_nz.rb +4 -0
  140. data/test/defs/test_defs_ro.rb +14 -0
  141. data/test/defs/test_defs_rs_cyrl.rb +1 -1
  142. data/test/defs/test_defs_rs_la.rb +1 -1
  143. data/test/defs/test_defs_southamerica.rb +323 -0
  144. data/test/defs/test_defs_th.rb +33 -0
  145. data/test/defs/test_defs_tr.rb +7 -0
  146. data/test/defs/test_defs_ua.rb +41 -0
  147. data/test/defs/{test_defs_united_nations.rb → test_defs_unitednations.rb} +3 -3
  148. data/test/defs/test_defs_us.rb +11 -11
  149. data/test/holidays/core_extensions/test_date.rb +3 -2
  150. data/test/holidays/definition/context/test_generator.rb +17 -20
  151. data/test/holidays/definition/context/test_load.rb +3 -3
  152. data/test/holidays/definition/generator/test_module.rb +268 -0
  153. data/test/holidays/definition/parser/test_custom_method.rb +4 -4
  154. data/test/holidays/definition/repository/test_holidays_by_month.rb +121 -1
  155. data/test/holidays/finder/context/test_parse_options.rb +0 -10
  156. data/test/holidays/finder/rules/test_year_range.rb +43 -47
  157. data/test/integration/test_any_holidays_during_work_week.rb +90 -0
  158. data/test/integration/test_available_regions.rb +1 -1
  159. data/test/integration/test_custom_informal_holidays.rb +15 -0
  160. data/test/integration/test_custom_year_range_holidays.rb +0 -7
  161. data/test/integration/test_holidays.rb +4 -56
  162. data/test/integration/test_holidays_between.rb +11 -1
  163. data/test/integration/test_multiple_regions.rb +54 -6
  164. data/test/integration/test_multiple_regions_with_conflict.rb +29 -0
  165. data/test/integration/test_nonstandard_regions.rb +25 -0
  166. metadata +79 -53
  167. data/CONTRIBUTING.md +0 -51
  168. data/test/defs/test_defs_federal_reserve.rb +0 -111
@@ -2,17 +2,17 @@
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
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_by_cath, :de_by_augsburg, :de_bb, :de_mv, :de_th, :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]
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
14
14
  {
15
- 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ostermontag", :regions => [:at]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ostermontag", :regions => [:at]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Christi Himmelfahrt", :regions => [:at]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Pfingstmontag", :regions => [:at]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Fronleichnam", :regions => [:at]},
@@ -64,20 +64,23 @@ 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]},
70
71
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Ascension", :regions => [:fr]},
71
72
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :type => :informal, :name => "Pentecôte", :regions => [:fr]},
72
73
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lundi de Pentecôte", :regions => [:fr]},
74
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -21, :type => :informal, :name => "Mothering Sunday", :regions => [:gb]},
73
75
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:gb]},
74
76
  {:function => "easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:gb]},
75
77
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]},
76
78
  {:function => "easter(year)", :function_arguments => [:year], :name => "Uskrs", :regions => [:hr]},
77
79
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Uskrsni ponedjeljak", :regions => [:hr]},
78
80
  {: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]},
81
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2017 },:name => "Nagypéntek", :regions => [:hu]},
82
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Húsvéthétfő", :regions => [:hu]},
83
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Pünkösdhétfő", :regions => [:hu]},
81
84
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:ie]},
82
85
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -48, :name => "Bolludagur", :regions => [:is]},
83
86
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Sprengidagur", :regions => [:is]},
@@ -101,6 +104,11 @@ module Holidays
101
104
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Fronleichnam", :regions => [:li]},
102
105
  {:function => "easter(year)", :function_arguments => [:year], :name => "Šv. Velykos", :regions => [:lt]},
103
106
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Antroji Velykų diena", :regions => [:lt]},
107
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Lielā Piektdiena", :regions => [:lv]},
108
+ {:function => "easter(year)", :function_arguments => [:year], :name => "Pirmās Lieldienas", :regions => [:lv]},
109
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Otrās Lieldienas", :regions => [:lv]},
110
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Vasarsvētki", :regions => [:lv]},
111
+ {: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
112
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Goede Vrijdag", :regions => [:nl]},
105
113
  {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Paasdag", :regions => [:nl]},
106
114
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Paasdag", :regions => [:nl]},
@@ -131,6 +139,7 @@ module Holidays
131
139
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Sexta-feira Santa", :regions => [:pt]},
132
140
  {:function => "easter(year)", :function_arguments => [:year], :name => "Páscoa", :regions => [:pt]},
133
141
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Corpo de Deus", :regions => [:pt]},
142
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2018 },:name => "Paștele - Vinerea Mare", :regions => [:ro]},
134
143
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Paștele - duminică", :regions => [:ro]},
135
144
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Paștele - luni", :regions => [:ro]},
136
145
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Rusaliile - 50", :regions => [:ro]},
@@ -146,12 +155,14 @@ module Holidays
146
155
  {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Велика събота", :regions => [:bg_bg]},
147
156
  {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:bg_en]},
148
157
  {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :name => "Възкресение Христово. Великден", :regions => [:bg_bg, :bg_bg]},
149
- {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:bg_en]}],
158
+ {:function => "orthodox_easter_julian(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:bg_en]},
159
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Великдень", :regions => [:ua]},
160
+ {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 49, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Трійця", :regions => [:ua]}],
150
161
  1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:at]},
151
162
  {:mday => 6, :name => "Heilige Drei Könige", :regions => [:at]},
152
163
  {:mday => 1, :name => "Jour de l'an", :regions => [:be_fr]},
153
164
  {:mday => 1, :name => "Nieuwjaar", :regions => [:be_nl]},
154
- {:mday => 1, :name => "Neujahrstag", :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_vd, :ch_vs, :ch_ne, :ch_ge, :ch_ju, :ch_ti]},
165
+ {:mday => 1, :name => "Neujahrstag", :regions => [:ch]},
155
166
  {:mday => 2, :name => "Berchtoldstag", :regions => [:ch_zh, :ch_be, :ch_lu, :ch_ow, :ch_nw, :ch_gl, :ch_zg, :ch_fr, :ch_so, :ch_sh, :ch_sg, :ch_ag, :ch_tg, :ch_vd, :ch_vs, :ch_ne, :ch_ju]},
156
167
  {:mday => 6, :name => "Dreikönigstag", :regions => [:ch_ur, :ch_sz, :ch_ti]},
157
168
  {:mday => 1, :name => "Den obnovy samostatného českého státu", :regions => [:cz]},
@@ -166,7 +177,7 @@ module Holidays
166
177
  {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:gb]},
167
178
  {:mday => 2, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "2nd January", :regions => [:gb_sct]},
168
179
  {:mday => 1, :name => "Nova godina", :regions => [:hr]},
169
- {:mday => 6, :name => "Sveta tri kralja", :regions => [:hr]},
180
+ {:mday => 6, :name => "Bogojavljenje ili Sveta tri kralja", :regions => [:hr]},
170
181
  {:mday => 1, :name => "Újév", :regions => [:hu]},
171
182
  {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ie]},
172
183
  {:mday => 1, :name => "Nýársdagur", :regions => [:is]},
@@ -177,6 +188,7 @@ module Holidays
177
188
  {:mday => 1, :name => "Neujahrstag", :regions => [:li]},
178
189
  {:mday => 6, :name => "Heilige Drei Könige", :regions => [:li]},
179
190
  {:mday => 1, :name => "Naujieji metai", :regions => [:lt]},
191
+ {:mday => 1, :name => "Jaungada diena", :regions => [:lv]},
180
192
  {:mday => 1, :name => "Nieuwjaarsdag", :regions => [:nl]},
181
193
  {:mday => 1, :name => "Nyttårsdag", :regions => [:no]},
182
194
  {:mday => 1, :name => "Nowy Rok", :regions => [:pl]},
@@ -187,11 +199,15 @@ module Holidays
187
199
  {:mday => 1, :name => "Ano Novo", :regions => [:pt]},
188
200
  {:mday => 1, :name => "Anul nou", :regions => [:ro]},
189
201
  {:mday => 2, :name => "Anul nou", :regions => [:ro]},
202
+ {:mday => 24, :year_ranges => { :from => 2017 },:name => "Unirea Principatelor Române", :regions => [:ro]},
190
203
  {:mday => 1, :name => "Nový rok", :regions => [:sk]},
191
204
  {:mday => 6, :name => "Zjavenie Pána (Traja králi)", :regions => [:sk]},
192
205
  {:mday => 1, :name => "novo leto", :regions => [:si]},
206
+ {:mday => 2, :name => "novo leto", :regions => [:si]},
193
207
  {:mday => 1, :name => "New Year's Day", :regions => [:bg_en]},
194
- {:mday => 1, :name => "Нова година", :regions => [:bg_bg]}],
208
+ {:mday => 1, :name => "Нова година", :regions => [:bg_bg]},
209
+ {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Новий Рік", :regions => [:ua]},
210
+ {:mday => 7, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Різдво Христове", :regions => [:ua]}],
195
211
  5 => [{:mday => 1, :name => "Staatsfeiertag", :regions => [:at]},
196
212
  {:mday => 1, :name => "Fête du travail", :regions => [:be_fr]},
197
213
  {:mday => 1, :name => "Feest van de Arbeid", :regions => [:be_nl]},
@@ -201,6 +217,7 @@ module Holidays
201
217
  {:mday => 1, :type => :informal, :name => "Arbejdernes kampdag", :regions => [:dk]},
202
218
  {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]},
203
219
  {:mday => 1, :name => "Tag der Arbeit", :regions => [:de]},
220
+ {:mday => 8, :year_ranges => { :limited => [2020] },:name => "Tag der Befreiung", :regions => [:de_be]},
204
221
  {:mday => 1, :name => "Πρωτομαγιά", :regions => [:el]},
205
222
  {:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día del Trabajador", :regions => [:es]},
206
223
  {:mday => 2, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Fiesta de la Comunidad", :regions => [:es_m]},
@@ -208,17 +225,25 @@ module Holidays
208
225
  {:mday => 31, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región Castilla-La Mancha", :regions => [:es_cm]},
209
226
  {:mday => 1, :name => "Fête du travail", :regions => [:fr]},
210
227
  {:mday => 8, :name => "Victoire 1945", :regions => [:fr]},
211
- {:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
228
+ {:wday => 1, :week => 1, :year_ranges => { :until => 2019 },:name => "May Day", :regions => [:gb]},
229
+ {:mday => 8, :year_ranges => { :limited => [2020] },:name => "May Day", :regions => [:gb]},
230
+ {:wday => 1, :week => 1, :year_ranges => { :from => 2021 },:name => "May Day", :regions => [:gb]},
212
231
  {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
213
- {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]},
214
- {:mday => 1, :name => "Međunarodni praznik rada", :regions => [:hr]},
232
+ {:wday => 1, :week => -1, :year_ranges => { :until => 2021 },:name => "Bank Holiday", :regions => [:gb]},
233
+ {:wday => 1, :week => -1, :year_ranges => { :from => 2023 },:name => "Bank Holiday", :regions => [:gb]},
234
+ {:mday => 1, :name => "Praznik rada", :regions => [:hr]},
235
+ {:mday => 30, :year_ranges => { :from => 2020 },:name => "Dan državnosti", :regions => [:hr]},
215
236
  {:mday => 1, :name => "A munka ünnepe", :regions => [:hu]},
216
237
  {:wday => 1, :week => 1, :name => "May Day", :regions => [:ie]},
217
238
  {:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
218
239
  {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]},
219
240
  {:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]},
241
+ {:mday => 21, :name => "Festa di San Zeno", :regions => [:it_vr]},
220
242
  {:mday => 1, :name => "Tag der Arbeit", :regions => [:li]},
221
243
  {:mday => 1, :name => "Darbininkų diena", :regions => [:lt]},
244
+ {:mday => 1, :name => "Darba svētki, Latvijas Republikas Satversmes sapulces sasaukšanas diena", :regions => [:lv]},
245
+ {:mday => 4, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Latvijas Republikas Neatkarības atjaunošanas diena", :regions => [:lv]},
246
+ {:wday => 0, :week => 2, :name => "Mātes diena", :regions => [:lv]},
222
247
  {:mday => 4, :type => :informal, :name => "Dodenherdenking", :regions => [:nl]},
223
248
  {:mday => 5, :name => "Bevrijdingsdag", :regions => [:nl]},
224
249
  {:mday => 1, :name => "1. mai", :regions => [:no]},
@@ -237,7 +262,10 @@ module Holidays
237
262
  {:mday => 6, :name => "St. George's Day", :regions => [:bg_en]},
238
263
  {:mday => 6, :name => "Гергьовден. Ден на храбростта", :regions => [:bg_bg]},
239
264
  {:mday => 24, :name => "Slavic Literacy Day", :regions => [:bg_en]},
240
- {:mday => 24, :name => "Ден на славянската писменост", :regions => [:bg_bg]}],
265
+ {:mday => 24, :name => "Ден на славянската писменост", :regions => [:bg_bg]},
266
+ {:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День праці", :regions => [:ua]},
267
+ {:mday => 2, :year_ranges => { :until => 2017 },:name => "День міжнародної солідарності трудящих", :regions => [:ua]},
268
+ {:mday => 9, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День перемоги над нацизмом у Другій світовій війні", :regions => [:ua]}],
241
269
  8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:at]},
242
270
  {:mday => 15, :name => "Assomption", :regions => [:be_fr]},
243
271
  {:mday => 15, :name => "O.L.V. Hemelvaart", :regions => [:be_nl]},
@@ -250,7 +278,7 @@ module Holidays
250
278
  {:mday => 15, :name => "Assomption", :regions => [:fr]},
251
279
  {:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
252
280
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]},
253
- {:mday => 5, :name => "Dan pobjede i domovinske zahvalnosti i dan hrvatskih branitelja", :regions => [:hr]},
281
+ {:mday => 5, :name => "Dan pobjede i domovinske zahvalnosti i Dan hrvatskih branitelja", :regions => [:hr]},
254
282
  {:mday => 15, :name => "Velika Gospa", :regions => [:hr]},
255
283
  {:mday => 20, :name => "Az államalapítás ünnepe", :regions => [:hu]},
256
284
  {:wday => 1, :week => 1, :name => "August Bank Holiday", :regions => [:ie]},
@@ -263,27 +291,31 @@ module Holidays
263
291
  {:mday => 15, :name => "Assunção de Nossa Senhora", :regions => [:pt]},
264
292
  {:mday => 15, :name => "Adormirea Maicii Domnului", :regions => [:ro]},
265
293
  {:mday => 29, :name => "Výročie Slovenského národného povstania", :regions => [:sk]},
266
- {:mday => 15, :name => "Marijino vnebovzetje", :regions => [:si]}],
294
+ {:mday => 15, :name => "Marijino vnebovzetje", :regions => [:si]},
295
+ {:mday => 24, :year_ranges => { :from => 1992 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День Незалежності", :regions => [:ua]}],
267
296
  10 => [{:mday => 26, :name => "Nationalfeiertag", :regions => [:at]},
268
297
  {:mday => 28, :name => "Den vzniku samostatného československého státu", :regions => [:cz]},
269
298
  {:mday => 3, :name => "Tag der Deutschen Einheit", :regions => [:de]},
270
299
  {:mday => 31, :name => "Reformationstag", :regions => [:de_bb, :de_mv, :de_sn, :de_st, :de_th]},
271
300
  {:mday => 31, :type => :informal, :name => "Reformationstag", :regions => [:de_bw]},
272
- {:mday => 31, :year_ranges => [{:limited => [2017]}],:name => "Reformationstag", :regions => [:de]},
301
+ {:mday => 31, :year_ranges => { :limited => [2017] },:name => "Reformationstag", :regions => [:de]},
302
+ {:mday => 31, :year_ranges => { :from => 2018 },:name => "Reformationstag", :regions => [:de_hb, :de_hh, :de_ni, :de_sh]},
273
303
  {:mday => 28, :name => "Επέτειος του Όχι", :regions => [:el]},
274
304
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Valencia", :regions => [:es_vc, :es_v]},
275
305
  {:mday => 12, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Hispanidad", :regions => [:es]},
276
- {:mday => 8, :name => "Dan neovisnosti", :regions => [:hr]},
306
+ {:mday => 8, :year_ranges => { :until => 2019 },:name => "Dan neovisnosti", :regions => [:hr]},
277
307
  {:mday => 23, :name => "1956-os forradalom és szabadságharc ünnepe", :regions => [:hu]},
278
308
  {:wday => 1, :week => -1, :name => "October Bank Holiday", :regions => [:ie]},
279
309
  {:mday => 14, :type => :informal, :name => "Dzień Nauczyciela (Dzień Edukacji Narodowej)", :regions => [:pl]},
280
310
  {:mday => 5, :name => "Dia da República", :regions => [:pt]},
281
- {:mday => 31, :name => "dan reformacije", :regions => [:si]}],
311
+ {:mday => 31, :name => "dan reformacije", :regions => [:si]},
312
+ {:mday => 14, :year_ranges => { :from => 2015 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День захисника України", :regions => [:ua]}],
282
313
  11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at]},
283
314
  {:mday => 1, :name => "Toussaint", :regions => [:be_fr]},
284
315
  {:mday => 11, :name => "Armistice 1918", :regions => [:be_fr]},
285
316
  {:mday => 1, :name => "Allerheiligen", :regions => [:be_nl]},
286
317
  {:mday => 11, :name => "Wapenstilstand 1918", :regions => [:be_nl]},
318
+ {:function => "ch_be_zibelemaerit(year)", :function_arguments => [:year], :name => "Zibelemärit", :regions => [:ch_be]},
287
319
  {: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]},
288
320
  {:mday => 17, :name => "Den boje za svobodu a demokracii", :regions => [:cz]},
289
321
  {:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
@@ -293,14 +325,18 @@ module Holidays
293
325
  {:mday => 1, :name => "Toussaint", :regions => [:fr]},
294
326
  {:mday => 11, :name => "Armistice 1918", :regions => [:fr]},
295
327
  {:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]},
296
- {: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]},
297
- {:mday => 30, :year_ranges => [{:after => 2007}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Andrew's Day", :regions => [:gb_sct]},
298
- {:mday => 1, :name => "Dan svih svetih", :regions => [:hr]},
328
+ {: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]},
329
+ {:mday => 30, :year_ranges => { :from => 2007 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Andrew's Day", :regions => [:gb_sct]},
330
+ {:mday => 1, :name => "Svi sveti", :regions => [:hr]},
331
+ {: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]},
299
332
  {:mday => 1, :name => "Mindenszentek", :regions => [:hu]},
300
333
  {:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]},
301
334
  {:mday => 1, :name => "Ognissanti", :regions => [:it]},
335
+ {:mday => 11, :name => "Festa di San Martino", :regions => [:it_bl]},
336
+ {:mday => 26, :name => "Festa di San Bellino", :regions => [:it_ro]},
302
337
  {:mday => 1, :name => "Allerheiligen", :regions => [:li]},
303
338
  {:mday => 1, :name => "Visų šventųjų diena", :regions => [:lt]},
339
+ {:mday => 18, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Latvijas Republikas Proklamēšanas diena", :regions => [:lv]},
304
340
  {:mday => 1, :name => "Wszystkich Świętych", :regions => [:pl]},
305
341
  {:mday => 2, :type => :informal, :name => "Dzień Zaduszny", :regions => [:pl]},
306
342
  {:mday => 11, :name => "Narodowe Święto Niepodległości", :regions => [:pl]},
@@ -363,6 +399,10 @@ module Holidays
363
399
  {:mday => 24, :name => "Šv. Kūčios", :regions => [:lt]},
364
400
  {:mday => 25, :name => "Šv. Kalėdos", :regions => [:lt]},
365
401
  {:mday => 26, :name => "Antroji Kalėdų diena", :regions => [:lt]},
402
+ {:mday => 24, :name => "Ziemassvētku vakars", :regions => [:lv]},
403
+ {:mday => 25, :name => "Pirmie Ziemassvētki", :regions => [:lv]},
404
+ {:mday => 26, :name => "Otrie Ziemassvētki", :regions => [:lv]},
405
+ {:mday => 31, :name => "Vecgada diena", :regions => [:lv]},
366
406
  {:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]},
367
407
  {:mday => 25, :name => "Eerste Kerstdag", :regions => [:nl]},
368
408
  {:mday => 26, :name => "Tweede Kerstdag", :regions => [:nl]},
@@ -392,7 +432,8 @@ module Holidays
392
432
  {:mday => 25, :name => "Christmas", :regions => [:bg_en]},
393
433
  {:mday => 25, :name => "Рождество Христово. Коледа", :regions => [:bg_bg]},
394
434
  {:mday => 26, :name => "Christmas", :regions => [:bg_en]},
395
- {:mday => 26, :name => "Рождество Христово. Коледа", :regions => [:bg_bg]}],
435
+ {:mday => 26, :name => "Рождество Христово. Коледа", :regions => [:bg_bg]},
436
+ {:mday => 25, :year_ranges => { :from => 2017 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Різдво Христове", :regions => [:ua]}],
396
437
  7 => [{:mday => 21, :name => "Fête nationale", :regions => [:be_fr]},
397
438
  {:mday => 21, :name => "Nationale Feestdag", :regions => [:be_nl]},
398
439
  {:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
@@ -400,16 +441,18 @@ module Holidays
400
441
  {:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Santiago Apostol", :regions => [:es_ga]},
401
442
  {:mday => 14, :name => "Fête nationale", :regions => [:fr]},
402
443
  {:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
403
- {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]},
444
+ {:mday => 12, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Battle of the Boyne", :regions => [:gb_nir]},
404
445
  {:mday => 6, :name => "Valstybės diena", :regions => [:lt]},
405
- {:mday => 5, :name => "Sviatok svätého Cyrila a svätého Metoda", :regions => [:sk]}],
446
+ {:mday => 5, :name => "Sviatok svätého Cyrila a svätého Metoda", :regions => [:sk]},
447
+ {:mday => 16, :year_ranges => { :limited => [1991] },:name => "День Незалежності України", :regions => [:ua]}],
406
448
  3 => [{:mday => 1, :name => "Instauration de la République", :regions => [:ch_ne]},
407
449
  {:mday => 19, :name => "Josephstag", :regions => [:ch_ur, :ch_sz, :ch_nw, :ch_ti, :ch_vs]},
450
+ {:mday => 8, :year_ranges => { :from => 2019 },:name => "Internationaler Frauentag", :regions => [:de_be]},
408
451
  {:mday => 25, :name => "Επέτειος της Επανάστασης του 1821", :regions => [:el]},
409
452
  {:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de las Islas Baleares", :regions => [:es_ib]},
410
453
  {: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]},
411
454
  {:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
412
- {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]},
455
+ {:mday => 17, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Patrick's Day", :regions => [:gb_nir]},
413
456
  {:mday => 15, :name => "1848/49-es forradalom és szabadságharc ünnepe", :regions => [:hu]},
414
457
  {:mday => 17, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Patrick's Day", :regions => [:ie]},
415
458
  {:mday => 19, :name => "St. Josef", :regions => [:li]},
@@ -417,7 +460,8 @@ module Holidays
417
460
  {:mday => 8, :type => :informal, :name => "Dzień Kobiet", :regions => [:pl]},
418
461
  {:mday => 10, :type => :informal, :name => "Dzień Mężczyzn", :regions => [:pl]},
419
462
  {:mday => 3, :name => "Liberation Day", :regions => [:bg_en]},
420
- {:mday => 3, :name => "Освобожението на България", :regions => [:bg_bg]}],
463
+ {:mday => 3, :name => "Освобожението на България", :regions => [:bg_bg]},
464
+ {:mday => 8, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Міжнародний жіночий день", :regions => [:ua]}],
421
465
  4 => [{:function => "ch_gl_naefelser_fahrt(year)", :function_arguments => [:year], :name => "Näfelser Fahrt", :regions => [:ch_gl]},
422
466
  {:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]},
423
467
  {:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]},
@@ -426,6 +470,8 @@ module Holidays
426
470
  {:mday => 23, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "San Jorge, Día de Aragón", :regions => [:es_ar]},
427
471
  {:function => "is_sumardagurinn_fyrsti(year)", :function_arguments => [:year], :name => "Sumardagurinn fyrsti", :regions => [:is]},
428
472
  {:mday => 25, :name => "Festa della Liberazione", :regions => [:it]},
473
+ {:mday => 25, :name => "Festa di San Marco Evangelista", :regions => [:it_ve]},
474
+ {:mday => 27, :name => "Festa di San Liberale", :regions => [:it_tv]},
429
475
  {:mday => 27, :name => "Koningsdag", :regions => [:nl]},
430
476
  {:mday => 1, :type => :informal, :name => "Prima Aprilis", :regions => [:pl]},
431
477
  {:mday => 22, :type => :informal, :name => "Międzynarodowy Dzień Ziemi", :regions => [:pl]},
@@ -438,18 +484,28 @@ module Holidays
438
484
  {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]},
439
485
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de la Región de Murcia", :regions => [:es_mu]},
440
486
  {:mday => 9, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de La Rioja", :regions => [:es_lo]},
487
+ {:mday => 24, :name => "San Juan", :regions => [:es_ct, :es_vc]},
488
+ {:mday => 2, :year_ranges => { :limited => [2022] },:name => "Bank Holiday", :regions => [:gb]},
489
+ {:mday => 3, :year_ranges => { :limited => [2022] },:name => "Platinum Jubilee", :regions => [:gb]},
441
490
  {:mday => 22, :name => "Dan antifašističke borbe", :regions => [:hr]},
442
- {:mday => 25, :name => "Dan državnosti", :regions => [:hr]},
491
+ {:mday => 25, :year_ranges => { :until => 2019 },:name => "Dan državnosti", :regions => [:hr]},
443
492
  {:wday => 1, :week => 1, :name => "June Bank Holiday", :regions => [:ie]},
444
493
  {:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
445
494
  {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]},
446
495
  {:mday => 2, :name => "Festa della Repubblica", :regions => [:it]},
496
+ {:mday => 13, :name => "Festa di Sant'Antonio di Padova", :regions => [:it_pd]},
497
+ {:mday => 24, :name => "Festa di San Giovanni Battista", :regions => [:it_fi, :it_ge, :it_to]},
498
+ {:mday => 29, :name => "Festa di San Pietro e Paolo", :regions => [:it_rm]},
447
499
  {:mday => 24, :name => "Joninės", :regions => [:lt]},
500
+ {:mday => 23, :name => "Līgo diena", :regions => [:lv]},
501
+ {:mday => 24, :name => "Jāņu diena", :regions => [:lv]},
448
502
  {:mday => 23, :type => :informal, :name => "Dzień Ojca", :regions => [:pl]},
449
503
  {:mday => 10, :name => "Dia de Portugal", :regions => [:pt]},
450
504
  {:mday => 13, :name => "Dia de Santo António", :regions => [:pt_li]},
451
505
  {:mday => 24, :name => "Dia de São João", :regions => [:pt_po]},
452
- {:mday => 25, :name => "dan državnosti", :regions => [:si]}],
506
+ {:mday => 1, :year_ranges => { :from => 2017 },:name => "Ziua Copilului", :regions => [:ro]},
507
+ {:mday => 25, :name => "dan državnosti", :regions => [:si]},
508
+ {:mday => 28, :year_ranges => { :from => 1997 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "День Конституції", :regions => [:ua]}],
453
509
  9 => [{:mday => 22, :name => "Mauritiustag", :regions => [:ch_ai]},
454
510
  {:mday => 25, :name => "Bruderklausenfest", :regions => [:ch_ow]},
455
511
  {:mday => 28, :name => "Den české státnosti", :regions => [:cz]},
@@ -457,7 +513,11 @@ module Holidays
457
513
  {:mday => 8, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Día de Asturias", :regions => [:es_o]},
458
514
  {:mday => 8, :name => "Día de Extremadura", :regions => [:es_ex]},
459
515
  {:mday => 11, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Fiesta Nacional de Cataluña", :regions => [:es_ct]},
516
+ {:mday => 24, :name => "La Mercè", :regions => [:es_ct]},
517
+ {:mday => 19, :year_ranges => { :limited => [2022] },:name => "Bank Holiday for the State Funeral of Queen Elizabeth II", :regions => [:gb]},
518
+ {:mday => 8, :name => "Festa della Madonna di Monte Berico", :regions => [:it_vi]},
460
519
  {:mday => 8, :name => "Maria Geburt", :regions => [:li]},
520
+ {:mday => 24, :year_ranges => { :limited => [2018] },:name => "Viņa Svētības pāvesta Franciska pastorālās vizītes Latvijā diena", :regions => [:lv]},
461
521
  {:mday => 30, :type => :informal, :name => "Dzień Chłopaka", :regions => [:pl]},
462
522
  {:mday => 1, :name => "Deň Ústavy Slovenskej republiky", :regions => [:sk]},
463
523
  {:mday => 15, :name => "Sedembolestná Panna Mária", :regions => [:sk]},
@@ -477,7 +537,7 @@ module Holidays
477
537
 
478
538
  def self.custom_methods
479
539
  {
480
- "ch_vd_lundi_du_jeune_federal(year)" => Proc.new { |year|
540
+ "ch_vd_lundi_du_jeune_federal(year)" => Proc.new { |year|
481
541
  date = Date.civil(year,9,1)
482
542
  # Find the first Sunday of September
483
543
  until date.wday.eql? 0 do
@@ -511,6 +571,17 @@ end
511
571
  date
512
572
  },
513
573
 
574
+ "ch_be_zibelemaerit(year)" => Proc.new { |year|
575
+ date = Date.civil(year,11,1)
576
+ # Find the first Monday of November
577
+ until date.wday.eql? 1 do
578
+ date += 1
579
+ end
580
+ # There are 21 days between the first monday
581
+ # and the 4rth Monday after
582
+ date + 21
583
+ },
584
+
514
585
  "de_buss_und_bettag(year)" => Proc.new { |year|
515
586
  date = Date.civil(year,11,23)
516
587
  if date.wday > 3
@@ -531,6 +602,20 @@ end
531
602
  date
532
603
  },
533
604
 
605
+ "lv_song_and_dance_festival_end_date(year)" => Proc.new { |year|
606
+ case year
607
+ when 2018
608
+ # 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")
609
+ Date.new(2018, 7, 8)
610
+ when 2023
611
+ # https://likumi.lv/ta/id/330067 (Ministru kabineta rīkojums Nr. 92 "Par XXVII Vispārējo latviešu dziesmu un XVII Deju svētku norises laiku")
612
+ Date.new(2023, 7, 9)
613
+ when 2028
614
+ # Event's period/next year is known, but precise dates aren't.
615
+ # Previously, dates were announced 2 years ahead, so on ~2026-05 this method would need to be revisited.
616
+ end
617
+ },
618
+
534
619
  "pl_trzech_kroli(year)" => Proc.new { |year|
535
620
  year >= 2011 ? 6 : nil
536
621
  },
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: definitions/federalreserve.yaml
6
+ #
7
+ # All the definitions are available at https://github.com/holidays/holidays
8
+ module FEDERALRESERVE # :nodoc:
9
+ def self.defined_regions
10
+ [:federalreserve]
11
+ end
12
+
13
+ def self.holidays_by_month
14
+ {
15
+ 1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:federalreserve]},
16
+ {:wday => 1, :week => 3, :name => "Birthday of Martin Luther King, Jr", :regions => [:federalreserve]}],
17
+ 2 => [{:wday => 1, :week => 3, :name => "Washington's Birthday", :regions => [:federalreserve]}],
18
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:federalreserve]}],
19
+ 6 => [{:mday => 19, :year_ranges => { :from => 2021 },:observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Juneteenth National Independence Day", :regions => [:federalreserve]}],
20
+ 7 => [{:mday => 4, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:federalreserve]}],
21
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:federalreserve]}],
22
+ 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:federalreserve]}],
23
+ 11 => [{:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Veterans Day", :regions => [:federalreserve]},
24
+ {:wday => 4, :week => 4, :name => "Thanksgiving Day", :regions => [:federalreserve]}],
25
+ 12 => [{:mday => 25, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:federalreserve]}]
26
+ }
27
+ end
28
+
29
+ def self.custom_methods
30
+ {
31
+
32
+ }
33
+ end
34
+ end
35
+ end
@@ -2,32 +2,33 @@
2
2
  module Holidays
3
3
  # This file is generated by the Ruby Holidays gem.
4
4
  #
5
- # Definitions loaded: definitions/federal_reserve.yaml
5
+ # Definitions loaded: definitions/federalreservebanks.yaml
6
6
  #
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
- module FEDERAL_RESERVE # :nodoc:
8
+ module FEDERALRESERVEBANKS # :nodoc:
9
9
  def self.defined_regions
10
- [:federal_reserve]
10
+ [:federalreservebanks]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:federal_reserve]},
16
- {:wday => 1, :week => 3, :name => "Birthday of Martin Luther King, Jr", :regions => [:federal_reserve]}],
17
- 2 => [{:wday => 1, :week => 3, :name => "Washington's Birthday", :regions => [:federal_reserve]}],
18
- 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:federal_reserve]}],
19
- 7 => [{:mday => 4, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:federal_reserve]}],
20
- 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:federal_reserve]}],
21
- 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:federal_reserve]}],
22
- 11 => [{:mday => 11, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Veterans Day", :regions => [:federal_reserve]},
23
- {:wday => 4, :week => 4, :name => "Thanksgiving Day", :regions => [:federal_reserve]}],
24
- 12 => [{:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:federal_reserve]}]
15
+ 1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:federalreservebanks]},
16
+ {:wday => 1, :week => 3, :name => "Birthday of Martin Luther King, Jr", :regions => [:federalreservebanks]}],
17
+ 2 => [{:wday => 1, :week => 3, :name => "Washington's Birthday", :regions => [:federalreservebanks]}],
18
+ 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:federalreservebanks]}],
19
+ 6 => [{:mday => 19, :year_ranges => { :from => 2021 },:observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Juneteenth National Independence Day", :regions => [:federalreservebanks]}],
20
+ 7 => [{:mday => 4, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:federalreservebanks]}],
21
+ 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:federalreservebanks]}],
22
+ 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:federalreservebanks]}],
23
+ 11 => [{:mday => 11, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Veterans Day", :regions => [:federalreservebanks]},
24
+ {:wday => 4, :week => 4, :name => "Thanksgiving Day", :regions => [:federalreservebanks]}],
25
+ 12 => [{:mday => 25, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:federalreservebanks]}]
25
26
  }
26
27
  end
27
28
 
28
29
  def self.custom_methods
29
30
  {
30
-
31
+
31
32
  }
32
33
  end
33
34
  end
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:fedex]}],
15
+ 1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:fedex]}],
16
16
  5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:fedex]}],
17
17
  7 => [{:mday => 4, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:fedex]}],
18
18
  9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:fedex]}],
@@ -25,7 +25,7 @@ module Holidays
25
25
 
26
26
  def self.custom_methods
27
27
  {
28
- "day_after_thanksgiving(year)" => Proc.new { |year|
28
+ "day_after_thanksgiving(year)" => Proc.new { |year|
29
29
  Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 11, 4, 4) + 1
30
30
  },
31
31
 
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Pitkäperjantai", :regions => [:fi]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Pitkäperjantai", :regions => [:fi]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :name => "Pääsiäispäivä", :regions => [:fi]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "2. Pääsiäispäivä", :regions => [:fi]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Helatorstai", :regions => [:fi]},
@@ -32,7 +32,7 @@ module Holidays
32
32
 
33
33
  def self.custom_methods
34
34
  {
35
- "fi_juhannusaatto(year)" => Proc.new { |year|
35
+ "fi_juhannusaatto(year)" => Proc.new { |year|
36
36
  date = Date.civil(year,6,19)
37
37
  if date.wday > 5 #if 19.6 is saturday
38
38
  date += 6
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Vendredi saint", :regions => [:fr_a, :fr_m]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Vendredi saint", :regions => [:fr_a, :fr_m]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Pâques", :regions => [:fr]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lundi de Pâques", :regions => [:fr]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Ascension", :regions => [:fr]},
@@ -32,7 +32,7 @@ module Holidays
32
32
 
33
33
  def self.custom_methods
34
34
  {
35
-
35
+
36
36
  }
37
37
  end
38
38
  end
@@ -12,23 +12,30 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:gb]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -21, :type => :informal, :name => "Mothering Sunday", :regions => [:gb]},
16
+ {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:gb]},
16
17
  {:function => "easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:gb]},
17
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]}],
18
19
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:gb]},
19
20
  {:mday => 2, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "2nd January", :regions => [:gb_sct]}],
20
21
  3 => [{:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
21
- {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]}],
22
- 5 => [{:wday => 1, :week => 1, :name => "May Day", :regions => [:gb]},
22
+ {:mday => 17, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Patrick's Day", :regions => [:gb_nir]}],
23
+ 5 => [{:wday => 1, :week => 1, :year_ranges => { :until => 2019 },:name => "May Day", :regions => [:gb]},
24
+ {:mday => 8, :year_ranges => { :limited => [2020] },:name => "May Day", :regions => [:gb]},
25
+ {:wday => 1, :week => 1, :year_ranges => { :from => 2021 },:name => "May Day", :regions => [:gb]},
23
26
  {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
24
- {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}],
27
+ {:wday => 1, :week => -1, :year_ranges => { :until => 2021 },:name => "Bank Holiday", :regions => [:gb]},
28
+ {:wday => 1, :week => -1, :year_ranges => { :from => 2023 },:name => "Bank Holiday", :regions => [:gb]}],
29
+ 6 => [{:mday => 2, :year_ranges => { :limited => [2022] },:name => "Bank Holiday", :regions => [:gb]},
30
+ {:mday => 3, :year_ranges => { :limited => [2022] },:name => "Platinum Jubilee", :regions => [:gb]}],
25
31
  7 => [{:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
26
- {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]}],
32
+ {:mday => 12, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Battle of the Boyne", :regions => [:gb_nir]}],
27
33
  8 => [{:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
28
34
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :je, :gb_jsy, :gg, :gb_gsy]}],
35
+ 9 => [{:mday => 19, :year_ranges => { :limited => [2022] },:name => "Bank Holiday for the State Funeral of Queen Elizabeth II", :regions => [:gb]}],
29
36
  11 => [{:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]},
30
- {: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]},
31
- {:mday => 30, :year_ranges => [{:after => 2007}],:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Andrew's Day", :regions => [:gb_sct]}],
37
+ {: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]},
38
+ {:mday => 30, :year_ranges => { :from => 2007 },:observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "St. Andrew's Day", :regions => [:gb_sct]}],
32
39
  12 => [{:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:gb]},
33
40
  {:mday => 26, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "Boxing Day", :regions => [:gb]}]
34
41
  }
@@ -36,7 +43,7 @@ module Holidays
36
43
 
37
44
  def self.custom_methods
38
45
  {
39
-
46
+
40
47
  }
41
48
  end
42
49
  end