holidays 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/.travis.yml +8 -1
  2. data/{CHANGELOG → CHANGELOG.rdoc} +29 -3
  3. data/LICENSE +2 -2
  4. data/README.rdoc +41 -28
  5. data/data/ar.yaml +82 -0
  6. data/data/au.yaml +40 -4
  7. data/data/be.yaml +65 -0
  8. data/data/br.yaml +12 -12
  9. data/data/ca.yaml +30 -17
  10. data/data/ch.yaml +187 -0
  11. data/data/federal_reserve.yaml +151 -0
  12. data/data/fi.yaml +19 -0
  13. data/data/fr.yaml +5 -5
  14. data/data/gb.yaml +19 -14
  15. data/data/hr.yaml +77 -0
  16. data/data/ie.yaml +36 -8
  17. data/data/index.yaml +12 -2
  18. data/data/ma.yaml +52 -0
  19. data/data/nerc.yaml +51 -0
  20. data/data/north_america_informal.yaml +13 -1
  21. data/data/pt.yaml +14 -13
  22. data/data/ro.yaml +76 -0
  23. data/data/sk.yaml +74 -0
  24. data/data/us.yaml +5 -1
  25. data/data/ve.yaml +70 -0
  26. data/holidays.gemspec +41 -9
  27. data/lib/holidays.rb +57 -34
  28. data/lib/holidays/MANIFEST +35 -24
  29. data/lib/holidays/ar.rb +42 -0
  30. data/lib/holidays/at.rb +3 -3
  31. data/lib/holidays/au.rb +28 -4
  32. data/lib/holidays/be.rb +40 -0
  33. data/lib/holidays/br.rb +1 -1
  34. data/lib/holidays/ca.rb +7 -3
  35. data/lib/holidays/ch.rb +92 -0
  36. data/lib/holidays/europe.rb +173 -53
  37. data/lib/holidays/federal_reserve.rb +50 -0
  38. data/lib/holidays/fi.rb +14 -1
  39. data/lib/holidays/fr.rb +1 -1
  40. data/lib/holidays/gb.rb +1 -1
  41. data/lib/holidays/hr.rb +42 -0
  42. data/lib/holidays/hu.rb +38 -0
  43. data/lib/holidays/ie.rb +16 -7
  44. data/lib/holidays/ma.rb +37 -0
  45. data/lib/holidays/mx.rb +3 -1
  46. data/lib/holidays/nerc.rb +34 -0
  47. data/lib/holidays/north_america.rb +9 -4
  48. data/lib/holidays/pt.rb +1 -1
  49. data/lib/holidays/ro.rb +40 -0
  50. data/lib/holidays/scandinavia.rb +13 -0
  51. data/lib/holidays/sk.rb +42 -0
  52. data/lib/holidays/us.rb +6 -3
  53. data/lib/holidays/ve.rb +40 -0
  54. data/rakefile.rb +1 -1
  55. data/test/defs/test_defs_ar.rb +27 -0
  56. data/test/defs/test_defs_au.rb +10 -0
  57. data/test/defs/test_defs_be.rb +25 -0
  58. data/test/defs/test_defs_br.rb +5 -5
  59. data/test/defs/test_defs_ca.rb +22 -2
  60. data/test/defs/test_defs_ch.rb +39 -0
  61. data/test/defs/test_defs_europe.rb +160 -10
  62. data/test/defs/test_defs_federal_reserve.rb +84 -0
  63. data/test/defs/test_defs_fi.rb +5 -0
  64. data/test/defs/test_defs_fr.rb +1 -1
  65. data/test/defs/test_defs_gb.rb +7 -2
  66. data/test/defs/test_defs_hr.rb +31 -0
  67. data/test/defs/test_defs_hu.rb +29 -0
  68. data/test/defs/test_defs_ie.rb +18 -3
  69. data/test/defs/test_defs_ma.rb +22 -0
  70. data/test/defs/test_defs_mx.rb +13 -0
  71. data/test/defs/test_defs_nerc.rb +23 -0
  72. data/test/defs/test_defs_north_america.rb +23 -2
  73. data/test/defs/test_defs_pt.rb +4 -3
  74. data/test/defs/test_defs_ro.rb +37 -0
  75. data/test/defs/test_defs_scandinavia.rb +5 -0
  76. data/test/defs/test_defs_sk.rb +28 -0
  77. data/test/defs/test_defs_us.rb +14 -0
  78. data/test/defs/test_defs_ve.rb +28 -0
  79. data/test/test_all_regions.rb +10 -0
  80. metadata +40 -6
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: data/be.yaml
6
+ #
7
+ # To use the definitions in this file, load it right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/be'
12
+ #
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
+ module BE # :nodoc:
15
+ def self.defined_regions
16
+ [:be]
17
+ end
18
+
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter", :regions => [:be]},
22
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:be]},
23
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Ascension", :regions => [:be]},
24
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pentecost", :regions => [:be]},
25
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pentecost Monday", :regions => [:be]}],
26
+ 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:be]}],
27
+ 5 => [{:mday => 1, :name => "Labour Day", :regions => [:be]}],
28
+ 7 => [{:mday => 21, :name => "National holiday", :regions => [:be]}],
29
+ 8 => [{:mday => 15, :name => "Assumption of Mary", :regions => [:be]}],
30
+ 11 => [{:mday => 1, :name => "All Saints", :regions => [:be]},
31
+ {:mday => 11, :name => "Armistice Day", :regions => [:be]}],
32
+ 12 => [{:mday => 25, :name => "Christmas", :regions => [:be]}]
33
+ }
34
+ end
35
+ end
36
+
37
+
38
+ end
39
+
40
+ Holidays.merge_defs(Holidays::BE.defined_regions, Holidays::BE.holidays_by_month)
@@ -21,7 +21,7 @@ module Holidays
21
21
  0 => [{:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:br]},
22
22
  {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:br]},
23
23
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:br]},
24
- {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpus Christ", :regions => [:br]}],
24
+ {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Corpus Christi", :regions => [:br]}],
25
25
  1 => [{:mday => 1, :name => "Dia da Confraternização Universal", :regions => [:br]}],
26
26
  4 => [{:mday => 21, :name => "Dia de Tiradentes", :regions => [:br]}],
27
27
  5 => [{:mday => 1, :name => "Dia do Trabalho", :regions => [:br]}],
@@ -13,27 +13,31 @@ module Holidays
13
13
  # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module CA # :nodoc:
15
15
  def self.defined_regions
16
- [:ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_nf, :ca_nt, :ca_nu, :ca_bc, :ca_ns, :ca_yk, :us]
16
+ [:ca, :ca_qc, :ca_ab, :ca_on, :ca_sk, :ca_mb, :ca_bc, :ca_nf, :ca_nt, :ca_nu, :ca_ns, :ca_yk, :us]
17
17
  end
18
18
 
19
19
  def self.holidays_by_month
20
20
  {
21
21
  0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:ca]},
22
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:ca]},
22
23
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :type => :informal, :name => "Easter Monday", :regions => [:ca]}],
23
24
  1 => [{:mday => 1, :name => "New Year's Day", :regions => [:ca]},
24
25
  {:mday => 2, :name => "New Year's", :regions => [:ca_qc]}],
25
26
  2 => [{:wday => 1, :week => 3, :name => "Family Day", :regions => [:ca_ab, :ca_on, :ca_sk]},
26
27
  {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]},
28
+ {:wday => 1, :week => 2, :name => "BC Family Day", :regions => [:ca_bc]},
27
29
  {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
28
30
  {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
29
31
  3 => [{:mday => 23, :name => "St. George's Day", :regions => [:ca_nf]},
30
32
  {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
31
33
  5 => [{:function => lambda { |year| Holidays.ca_victoria_day(year) }, :function_id => "ca_victoria_day(year)", :name => "Victoria Day", :regions => [:ca]},
32
34
  {:function => lambda { |year| Holidays.ca_victoria_day(year) }, :function_id => "ca_victoria_day(year)", :name => "National Patriotes Day", :regions => [:ca_qc]},
33
- {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
35
+ {:wday => 0, :week => 2, :type => :informal, :name => "Mother's Day", :regions => [:us, :ca]},
36
+ {:wday => 6, :week => 3, :type => :informal, :name => "Armed Forces Day", :regions => [:us]}],
34
37
  6 => [{:mday => 24, :name => "Discovery Day", :regions => [:ca_nf]},
35
38
  {:mday => 24, :name => "Fête Nationale", :regions => [:ca_qc]},
36
- {:mday => 21, :name => "National Aboriginal Day", :regions => [:ca_nt]}],
39
+ {:mday => 21, :name => "National Aboriginal Day", :regions => [:ca_nt]},
40
+ {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
37
41
  7 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Canada Day", :regions => [:ca]},
38
42
  {:mday => 12, :name => "Orangemen's Day", :regions => [:ca_nf]},
39
43
  {:mday => 9, :name => "Nunavut Day", :regions => [:ca_nu]}],
@@ -0,0 +1,92 @@
1
+ # encoding: utf-8
2
+ module Holidays
3
+ # This file is generated by the Ruby Holidays gem.
4
+ #
5
+ # Definitions loaded: data/ch.yaml
6
+ #
7
+ # To use the definitions in this file, load it right after you load the
8
+ # Holiday gem:
9
+ #
10
+ # require 'holidays'
11
+ # require 'holidays/ch'
12
+ #
13
+ # All the definitions are available at https://github.com/alexdunae/holidays
14
+ module CH # :nodoc:
15
+ def self.defined_regions
16
+ [: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]
17
+ end
18
+
19
+ def self.holidays_by_month
20
+ {
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Karfreitag", :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_vd, :ch_ne, :ch_ge, :ch_ju]},
22
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Ostermontag", :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_vd, :ch_vs, :ch_ge, :ch_ju]},
23
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Auffahrt", :regions => [:ch]},
24
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pfingstmontag", :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_vd, :ch_vs, :ch_ge, :ch_ju]},
25
+ {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Fronleichnam", :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_ne, :ch_ju]},
26
+ {:function => lambda { |year| Holidays.ch_vd_lundi_du_jeune_federal(year) }, :function_id => "ch_vd_lundi_du_jeune_federal(year)", :name => "Lundi du Jeûne fédéral", :regions => [:ch_vd]},
27
+ {:function => lambda { |year| Holidays.ch_ge_jeune_genevois(year) }, :function_id => "ch_ge_jeune_genevois(year)", :name => "Jeûne genevois", :regions => [:ch_ge]}],
28
+ 1 => [{: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]},
29
+ {: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]},
30
+ {:mday => 6, :name => "Dreikönigstag", :regions => [:ch_ur, :ch_sz, :ch_ti]}],
31
+ 3 => [{:mday => 1, :name => "Instauration de la République", :regions => [:ch_ne]},
32
+ {:mday => 19, :name => "Josephstag", :regions => [:ch_ur, :ch_sz, :ch_nw, :ch_ti, :ch_vs]}],
33
+ 4 => [{:function => lambda { |year| Holidays.ch_gl_naefelser_fahrt(year) }, :function_id => "ch_gl_naefelser_fahrt(year)", :name => "Näfelser Fahrt", :regions => [:ch_gl]}],
34
+ 5 => [{:mday => 1, :name => "Tag der Arbeit", :regions => [:ch_zh, :ch_bs, :ch_bl, :ch_sh, :ch_ag, :ch_tg, :ch_ti, :ch_ne, :ch_ju]}],
35
+ 6 => [{:mday => 23, :name => "Commémoration du plébiscite jurassien", :regions => [:ch_ju]},
36
+ {:mday => 29, :name => "San Pietro e Paolo", :regions => [:ch_ti]}],
37
+ 8 => [{:mday => 1, :name => "Bundesfeiertag", :regions => [:ch]},
38
+ {: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]}],
39
+ 9 => [{:mday => 22, :name => "Mauritiustag", :regions => [:ch_ai]},
40
+ {:mday => 25, :name => "Bruderklausenfest", :regions => [:ch_ow]}],
41
+ 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]}],
42
+ 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]},
43
+ {:mday => 25, :name => "Weihnachten", :regions => [:ch]},
44
+ {: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]},
45
+ {:mday => 31, :name => "Restauration de la République", :regions => [:ch_ge]}]
46
+ }
47
+ end
48
+ end
49
+
50
+ # Monday after the third Sunday of September
51
+ def self.ch_vd_lundi_du_jeune_federal(year)
52
+ date = Date.civil(year,9,1)
53
+ # Find the first Sunday of September
54
+ until date.wday.eql? 0 do
55
+ date += 1
56
+ end
57
+ # There are 15 days between the first Sunday
58
+ # and the Monday after the third Sunday
59
+ date + 15
60
+ end
61
+
62
+
63
+ # Thursday after the first Sunday of September
64
+ def self.ch_ge_jeune_genevois(year)
65
+ date = Date.civil(year,9,1)
66
+ # Find the first Sunday of September
67
+ until date.wday.eql? 0 do
68
+ date += 1
69
+ end
70
+ # Thursday is four days after Sunday
71
+ date + 4
72
+ end
73
+
74
+
75
+ # First Thursday of April. If the first Thursday of April is in the week before easter, then a week later.
76
+ def self.ch_gl_naefelser_fahrt(year)
77
+ date = Date.civil(year,4,1)
78
+ # Find the first Thursday of April
79
+ until date.wday.eql? 4 do
80
+ date += 1
81
+ end
82
+ if date.eql?(easter(year)-3)
83
+ date += 7
84
+ end
85
+ date
86
+ end
87
+
88
+
89
+
90
+ end
91
+
92
+ Holidays.merge_defs(Holidays::CH.defined_regions, Holidays::CH.holidays_by_month)
@@ -2,7 +2,7 @@
2
2
  module Holidays
3
3
  # This file is generated by the Ruby Holidays gem.
4
4
  #
5
- # Definitions loaded: data/at.yaml, data/cz.yaml, data/dk.yaml, data/de.yaml, data/el.yaml, data/es.yaml, data/fr.yaml, data/gb.yaml, data/ie.yaml, data/is.yaml, data/it.yaml, data/li.yaml, data/nl.yaml, data/no.yaml, data/pl.yaml, data/pt.yaml
5
+ # Definitions loaded: data/at.yaml, data/be.yaml, data/ch.yaml, data/cz.yaml, data/dk.yaml, data/de.yaml, data/el.yaml, data/es.yaml, data/fr.yaml, data/gb.yaml, data/hr.yaml, data/hu.yaml, data/ie.yaml, data/is.yaml, data/it.yaml, data/li.yaml, data/nl.yaml, data/no.yaml, data/pl.yaml, data/pt.yaml, data/ro.yaml, data/sk.yaml
6
6
  #
7
7
  # To use the definitions in this file, load it right after you load the
8
8
  # Holiday gem:
@@ -13,15 +13,24 @@ module Holidays
13
13
  # All the definitions are available at https://github.com/alexdunae/holidays
14
14
  module Europe # :nodoc:
15
15
  def self.defined_regions
16
- [:at, :de, :li, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :cz, :dk, :no, :de_st, :de_bb, :de_mv, :de_sn, :de_th, :el, :es_pv, :es_ct, :es_na, :es_v, :es_vc, :es, :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, :fr, :gb, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :ie, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom, :is, :it, :nl, :pl, :pt]
16
+ [:at, :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_vs, :ch_ge, :ch_ju, :de, :li, :ch_ne, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :de_st, :be, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :ie, :fr, :ch, :cz, :dk, :no, :de_bb, :de_mv, :de_sn, :de_th, :el, :es_pv, :es_ct, :es_na, :es_v, :es_vc, :es, :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, :gb, :gb_sct, :gb_con, :je, :gb_jsy, :gg, :gb_gsy, :im, :gb_iom, :hr, :hu, :is, :it, :nl, :pl, :pt, :ro, :sk]
17
17
  end
18
18
 
19
19
  def self.holidays_by_month
20
20
  {
21
- 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Ostermontag", :regions => [:at, :de, :li]},
21
+ 0 => [{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Ostermontag", :regions => [:at, :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_vs, :ch_ge, :ch_ju, :de, :li]},
22
22
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Christi Himmelfahrt", :regions => [:at, :de]},
23
- {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pfingstmontag", :regions => [:at, :de, :li]},
24
- {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Fronleichnam", :regions => [:at, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :li]},
23
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pfingstmontag", :regions => [:at, :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_vs, :ch_ge, :ch_ju, :de, :li]},
24
+ {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Fronleichnam", :regions => [:at, :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_ne, :ch_ju, :de_bw, :de_by, :de_he, :de_nw, :de_rp, :de_sl, :li]},
25
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter", :regions => [:be]},
26
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:be, :gb_eng, :gb_wls, :gb_eaw, :gb_nir, :ie]},
27
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Ascension", :regions => [:be, :fr]},
28
+ {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pentecost", :regions => [:be]},
29
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pentecost Monday", :regions => [:be]},
30
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Karfreitag", :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_vd, :ch_ne, :ch_ge, :ch_ju, :de, :li]},
31
+ {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Auffahrt", :regions => [:ch, :li]},
32
+ {:function => lambda { |year| Holidays.ch_vd_lundi_du_jeune_federal(year) }, :function_id => "ch_vd_lundi_du_jeune_federal(year)", :name => "Lundi du Jeûne fédéral", :regions => [:ch_vd]},
33
+ {:function => lambda { |year| Holidays.ch_ge_jeune_genevois(year) }, :function_id => "ch_ge_jeune_genevois(year)", :name => "Jeûne genevois", :regions => [:ch_ge]},
25
34
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Velikonoční pondělí", :regions => [:cz]},
26
35
  {:function => lambda { |year| Holidays.easter(year)-49 }, :function_id => "easter(year)-49", :type => :informal, :name => "Fastelavn", :regions => [:dk, :no]},
27
36
  {:function => lambda { |year| Holidays.easter(year)-7 }, :function_id => "easter(year)-7", :name => "Palmesøndag", :regions => [:dk, :no]},
@@ -33,7 +42,6 @@ module Holidays
33
42
  {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Kristi Himmelfartsdag", :regions => [:dk, :no]},
34
43
  {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pinsedag", :regions => [:dk]},
35
44
  {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "2. Pinsedag", :regions => [:dk]},
36
- {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Karfreitag", :regions => [:de, :li]},
37
45
  {:function => lambda { |year| Holidays.orthodox_easter(year)-2 }, :function_id => "orthodox_easter(year)-2", :name => "Μεγάλη Παρασκευή", :regions => [:el]},
38
46
  {:function => lambda { |year| Holidays.orthodox_easter(year)-1 }, :function_id => "orthodox_easter(year)-1", :name => "Μεγάλο Σάββατο", :regions => [:el]},
39
47
  {:function => lambda { |year| Holidays.orthodox_easter(year) }, :function_id => "orthodox_easter(year)", :name => "Κυριακή του Πάσχα", :regions => [:el]},
@@ -45,12 +53,15 @@ module Holidays
45
53
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lunes de Pascua", :regions => [:es_pv, :es_ct, :es_na, :es_v, :es_vc]},
46
54
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pâques", :regions => [:fr]},
47
55
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lundi de Pâques", :regions => [:fr]},
48
- {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Ascension", :regions => [:fr]},
49
56
  {:function => lambda { |year| Holidays.easter(year)+49 }, :function_id => "easter(year)+49", :name => "Pentecôte", :regions => [:fr]},
50
57
  {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Lundi de Pentecôte", :regions => [:fr]},
51
58
  {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Good Friday", :regions => [:gb]},
52
59
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:gb]},
53
- {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir, :ie]},
60
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Uskrs", :regions => [:hr]},
61
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Uskrsni ponedjeljak", :regions => [:hr]},
62
+ {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Tijelovo", :regions => [:hr]},
63
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Húsvét hétfő", :regions => [:hu]},
64
+ {:function => lambda { |year| Holidays.easter(year)+50 }, :function_id => "easter(year)+50", :name => "Pünkösd hétfő", :regions => [:hu]},
54
65
  {:function => lambda { |year| Holidays.easter(year)-48 }, :function_id => "easter(year)-48", :name => "Bolludagur", :regions => [:is]},
55
66
  {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Sprengidagur", :regions => [:is]},
56
67
  {:function => lambda { |year| Holidays.easter(year)-46 }, :function_id => "easter(year)-46", :name => "Öskudagur", :regions => [:is]},
@@ -66,7 +77,6 @@ module Holidays
66
77
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Lunedì dell'Angelo", :regions => [:it]},
67
78
  {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :name => "Fasnachtsdienstag", :regions => [:li]},
68
79
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :type => :informal, :name => "Ostern", :regions => [:li]},
69
- {:function => lambda { |year| Holidays.easter(year)+39 }, :function_id => "easter(year)+39", :name => "Auffahrt", :regions => [:li]},
70
80
  {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Goede Vrijdag", :regions => [:nl]},
71
81
  {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Pasen", :regions => [:nl]},
72
82
  {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Pasen", :regions => [:nl]},
@@ -90,19 +100,30 @@ module Holidays
90
100
  {:function => lambda { |year| Holidays.easter(year)+60 }, :function_id => "easter(year)+60", :name => "Uroczystość Najświętszego Ciała i Krwi Pańskiej (Boże Ciało)", :regions => [:pl]},
91
101
  {:function => lambda { |year| Holidays.easter(year)-47 }, :function_id => "easter(year)-47", :type => :informal, :name => "Carnaval", :regions => [:pt]},
92
102
  {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Sexta-feira Santa", :regions => [:pt]},
93
- {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]}],
94
- 1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:at, :de, :li]},
95
- {:mday => 6, :name => "Heilige Drei Könige", :regions => [:at]},
103
+ {:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Páscoa", :regions => [:pt]},
104
+ {:function => lambda { |year| Holidays.orthodox_easter(year) }, :function_id => "orthodox_easter(year)", :name => "Paștele", :regions => [:ro]},
105
+ {:function => lambda { |year| Holidays.orthodox_easter(year)+1 }, :function_id => "orthodox_easter(year)+1", :name => "Paștele", :regions => [:ro]},
106
+ {:function => lambda { |year| Holidays.orthodox_easter(year) + 49 }, :function_id => "orthodox_easter(year) + 49", :name => "Rusaliile", :regions => [:ro]},
107
+ {:function => lambda { |year| Holidays.orthodox_easter(year) + 50 }, :function_id => "orthodox_easter(year) + 50", :name => "Rusaliile", :regions => [:ro]},
108
+ {:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Veľkonočný pondelok", :regions => [:sk]},
109
+ {:function => lambda { |year| Holidays.easter(year)-2 }, :function_id => "easter(year)-2", :name => "Veľký piatok", :regions => [:sk]}],
110
+ 1 => [{:mday => 1, :name => "Neujahrstag", :regions => [:at, :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, :de, :li]},
111
+ {:mday => 6, :name => "Heilige Drei Könige", :regions => [:at, :de_bw, :de_by, :de_st, :li, :li]},
112
+ {:mday => 1, :name => "New Year's Day", :regions => [:be]},
113
+ {: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]},
114
+ {:mday => 6, :name => "Dreikönigstag", :regions => [:ch_ur, :ch_sz, :ch_ti]},
96
115
  {:mday => 1, :name => "Den obnovy samostatného českého státu", :regions => [:cz]},
97
116
  {:mday => 1, :name => "Nytårsdag", :regions => [:dk]},
98
- {:mday => 6, :name => "Heilige Drei Könige", :regions => [:de_bw, :de_by, :de_st, :li, :li]},
99
117
  {:mday => 1, :name => "Πρωτοχρονιά", :regions => [:el]},
100
118
  {:mday => 6, :name => "Θεοφάνεια", :regions => [:el]},
101
119
  {:mday => 1, :name => "Año Nuevo", :regions => [:es]},
102
120
  {:mday => 6, :name => "Día de Reyes", :regions => [:es]},
103
121
  {:mday => 1, :name => "Jour de l'an", :regions => [:fr]},
104
- {:mday => 1, :name => "New Year's Day", :regions => [:gb, :ie]},
122
+ {:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "New Year's Day", :regions => [:gb, :ie]},
105
123
  {:mday => 2, :name => "New Year's", :regions => [:gb_sct]},
124
+ {:mday => 1, :name => "Nova godina", :regions => [:hr]},
125
+ {:mday => 6, :name => "Sveta tri kralja", :regions => [:hr]},
126
+ {:mday => 1, :name => "Újév", :regions => [:hu]},
106
127
  {:mday => 1, :name => "Nýársdagur", :regions => [:is]},
107
128
  {:mday => 6, :name => "Þrettándinn", :regions => [:is]},
108
129
  {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]},
@@ -115,13 +136,17 @@ module Holidays
115
136
  {:function => lambda { |year| Holidays.pl_trzech_kroli_informal(year) }, :function_id => "pl_trzech_kroli_informal(year)", :type => :informal, :name => "Objawienie Pańskie (święto Trzech Króli)", :regions => [:pl]},
116
137
  {:mday => 21, :type => :informal, :name => "Dzień Babci", :regions => [:pl]},
117
138
  {:mday => 22, :type => :informal, :name => "Dzień Dziadka", :regions => [:pl]},
118
- {:mday => 1, :name => "Ano Novo", :regions => [:pt]}],
139
+ {:mday => 1, :name => "Ano Novo", :regions => [:pt]},
140
+ {:mday => 1, :name => "Anul nou", :regions => [:ro]},
141
+ {:mday => 2, :name => "Anul nou", :regions => [:ro]},
142
+ {:mday => 1, :name => "Nový rok", :regions => [:sk]}],
119
143
  5 => [{:mday => 1, :name => "Staatsfeiertag", :regions => [:at]},
144
+ {:mday => 1, :name => "Labour Day", :regions => [:be]},
145
+ {:mday => 1, :name => "Tag der Arbeit", :regions => [:ch_zh, :ch_bs, :ch_bl, :ch_sh, :ch_ag, :ch_tg, :ch_ti, :ch_ne, :ch_ju, :de, :li]},
120
146
  {:mday => 1, :name => "Svátek práce", :regions => [:cz]},
121
147
  {:mday => 8, :name => "Den vítězství", :regions => [:cz]},
122
148
  {:mday => 1, :name => "Arbejdernes kampdag", :regions => [:dk]},
123
149
  {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]},
124
- {:mday => 1, :name => "Tag der Arbeit", :regions => [:de, :li]},
125
150
  {:mday => 1, :name => "Πρωτομαγιά", :regions => [:el]},
126
151
  {:mday => 1, :name => "Día del Trabajador", :regions => [:es]},
127
152
  {:mday => 2, :name => "Fiesta de la Comunidad", :regions => [:es_m]},
@@ -132,6 +157,8 @@ module Holidays
132
157
  {:wday => 1, :week => 1, :name => "May Day", :regions => [:gb, :ie]},
133
158
  {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]},
134
159
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]},
160
+ {:mday => 1, :name => "Međunarodni praznik rada", :regions => [:hr]},
161
+ {:mday => 1, :name => "A munka ünnepe", :regions => [:hu]},
135
162
  {:mday => 1, :name => "Verkalýðsdagurinn", :regions => [:is]},
136
163
  {:mday => 13, :name => "Mæðradagurinn", :regions => [:is]},
137
164
  {:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]},
@@ -142,19 +169,30 @@ module Holidays
142
169
  {:mday => 1, :name => "Święto Państwowe (Święto Pracy)", :regions => [:pl]},
143
170
  {:mday => 2, :type => :informal, :name => "Dzień Flagi Rzeczpospolitej Polskiej", :regions => [:pl]},
144
171
  {:mday => 3, :name => "Święto Narodowe Trzeciego Maja", :regions => [:pl]},
145
- {:mday => 1, :name => "Dia do Trabalhador", :regions => [:pt]}],
146
- 8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:at]},
147
- {:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:de_by, :de_sl]},
172
+ {:mday => 1, :name => "Dia do Trabalhador", :regions => [:pt]},
173
+ {:mday => 1, :name => "Ziua muncii", :regions => [:ro]},
174
+ {:mday => 1, :name => "Sviatok práce", :regions => [:sk]},
175
+ {:mday => 8, :name => "Deň víťazstva", :regions => [:sk]}],
176
+ 8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:at, :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, :de_by, :de_sl]},
177
+ {:mday => 15, :name => "Assumption of Mary", :regions => [:be]},
178
+ {:mday => 1, :name => "Bundesfeiertag", :regions => [:ch]},
148
179
  {:mday => 15, :name => "Κοίμηση της Θεοτόκου", :regions => [:el]},
149
180
  {:mday => 15, :name => "Asunción", :regions => [:es]},
150
181
  {:mday => 15, :name => "Assomption", :regions => [:fr]},
151
- {:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct, :ie]},
182
+ {:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:gb_sct]},
152
183
  {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb_eng, :gb_wls, :gb_eaw, :gb_nir]},
184
+ {:mday => 5, :name => "Dan pobjede i domovinske zahvalnosti i dan hrvatskih branitelja", :regions => [:hr]},
185
+ {:mday => 15, :name => "Velika Gospa", :regions => [:hr]},
186
+ {:mday => 20, :name => "Az államalapítás ünnepe", :regions => [:hu]},
187
+ {:wday => 1, :week => 1, :name => "August Bank Holiday", :regions => [:ie]},
153
188
  {:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]},
154
189
  {:mday => 15, :name => "Assunzione", :regions => [:it]},
155
190
  {:mday => 15, :name => "Staatsfeiertag", :regions => [:li]},
156
191
  {:mday => 15, :name => "Wniebowzięcie Najświętszej Maryi Panny", :regions => [:pl]},
157
- {:mday => 15, :name => "Święto Wojska Polskiego", :regions => [:pl]}],
192
+ {:mday => 15, :name => "Święto Wojska Polskiego", :regions => [:pl]},
193
+ {:mday => 15, :name => "Assunção de Nossa Senhora", :regions => [:pt]},
194
+ {:mday => 15, :name => "Adormirea Maicii Domnului", :regions => [:ro]},
195
+ {:mday => 29, :name => "Výročie Slovenského národného povstania", :regions => [:sk]}],
158
196
  10 => [{:mday => 26, :name => "Nationalfeiertag", :regions => [:at]},
159
197
  {:mday => 28, :name => "Den vzniku samostatného československého státu", :regions => [:cz]},
160
198
  {:mday => 3, :name => "Tag der Deutschen Einheit", :regions => [:de]},
@@ -162,9 +200,13 @@ module Holidays
162
200
  {:mday => 28, :name => "Επέτειος του Όχι", :regions => [:el]},
163
201
  {:mday => 9, :name => "Día de Valencia", :regions => [:es_vc, :es_v]},
164
202
  {:mday => 12, :name => "Día de la Hispanidad", :regions => [:es]},
165
- {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:ie]},
203
+ {:mday => 8, :name => "Dan neovisnosti", :regions => [:hr]},
204
+ {:mday => 23, :name => "1956-os forradalom és szabadságharc ünnepe", :regions => [:hu]},
205
+ {:wday => 1, :week => -1, :name => "October Bank Holiday", :regions => [:ie]},
166
206
  {:mday => 14, :type => :informal, :name => "Dzień Nauczyciela (Dzień Edukacji Narodowej)", :regions => [:pl]}],
167
- 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at, :de_bw, :de_by, :de_nw, :de_rp, :de_sl, :li]},
207
+ 11 => [{:mday => 1, :name => "Allerheiligen", :regions => [:at, :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, :de_bw, :de_by, :de_nw, :de_rp, :de_sl, :li]},
208
+ {:mday => 1, :name => "All Saints", :regions => [:be]},
209
+ {:mday => 11, :name => "Armistice Day", :regions => [:be]},
168
210
  {:mday => 17, :name => "Den boje za svobodu a demokracii", :regions => [:cz]},
169
211
  {:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]},
170
212
  {:function => lambda { |year| Holidays.de_buss_und_bettag(year) }, :function_id => "de_buss_und_bettag(year)", :name => "Buß- und Bettag", :regions => [:de_sn]},
@@ -172,16 +214,25 @@ module Holidays
172
214
  {:mday => 1, :name => "Toussaint", :regions => [:fr]},
173
215
  {:mday => 11, :name => "Armistice 1918", :regions => [:fr]},
174
216
  {:mday => 5, :type => :informal, :name => "Guy Fawkes Day", :regions => [:gb]},
217
+ {:mday => 1, :name => "Dan svih svetih", :regions => [:hr]},
218
+ {:mday => 1, :name => "Mindenszentek", :regions => [:hu]},
175
219
  {:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]},
176
220
  {:mday => 1, :name => "Ognissanti", :regions => [:it]},
177
221
  {:mday => 1, :name => "Wszystkich Świętych", :regions => [:pl]},
178
222
  {:mday => 2, :type => :informal, :name => "Dzień Zaduszny", :regions => [:pl]},
179
223
  {:mday => 11, :name => "Narodowe Święto Niepodległości", :regions => [:pl]},
180
224
  {:mday => 29, :type => :informal, :name => "Andrzejki", :regions => [:pl]},
181
- {:mday => 1, :name => "Todos os Santos", :regions => [:pt]}],
182
- 12 => [{:mday => 8, :name => "Mariä Empfängnis", :regions => [:at]},
225
+ {:mday => 30, :name => "Sfântul Apostol Andrei", :regions => [:ro]},
226
+ {:mday => 1, :name => "Sviatok všetkých svätých", :regions => [:sk]},
227
+ {:mday => 17, :name => "Deň boja za slobodu a demokraciu", :regions => [:sk]}],
228
+ 12 => [{:mday => 8, :name => "Mariä Empfägnis", :regions => [:at]},
183
229
  {:mday => 25, :name => "1. Weihnachtstag", :regions => [:at, :de]},
184
230
  {:mday => 26, :name => "2. Weihnachtstag", :regions => [:at, :de]},
231
+ {:mday => 25, :name => "Christmas", :regions => [:be]},
232
+ {: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, :li]},
233
+ {:mday => 25, :name => "Weihnachten", :regions => [:ch, :li]},
234
+ {: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, :li]},
235
+ {:mday => 31, :name => "Restauration de la République", :regions => [:ch_ge]},
185
236
  {:mday => 24, :name => "Štědrý den", :regions => [:cz]},
186
237
  {:mday => 25, :name => "1. svátek vánoční", :regions => [:cz]},
187
238
  {:mday => 26, :name => "2. svátek vánoční", :regions => [:cz]},
@@ -195,11 +246,14 @@ module Holidays
195
246
  {:mday => 8, :name => "Inmaculada Concepción", :regions => [:es]},
196
247
  {:mday => 25, :name => "Navidad del Señor", :regions => [:es]},
197
248
  {:mday => 26, :name => "San Esteban", :regions => [:es_ib, :es_ct]},
198
- {:mday => 25, :name => "Nöel", :regions => [:fr]},
199
- {:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:gb]},
249
+ {:mday => 25, :name => "Noël", :regions => [:fr]},
250
+ {:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:gb, :ie]},
200
251
  {:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:gb]},
201
- {:mday => 25, :name => "Christmas Day", :regions => [:ie]},
202
- {:mday => 26, :name => "St. Stephen's Day", :regions => [:ie]},
252
+ {:mday => 25, :name => "Božić", :regions => [:hr]},
253
+ {:mday => 26, :name => "Sveti Stjepan", :regions => [:hr]},
254
+ {:mday => 25, :name => "Karácsony", :regions => [:hu]},
255
+ {:mday => 26, :name => "Karácsony", :regions => [:hu]},
256
+ {:mday => 26, :observed => lambda { |date| Holidays.ie_st_stephens_day(date) }, :observed_id => "ie_st_stephens_day", :name => "St. Stephen's Day", :regions => [:ie]},
203
257
  {:mday => 24, :name => "Jól", :regions => [:is]},
204
258
  {:mday => 25, :name => "Jól", :regions => [:is]},
205
259
  {:mday => 26, :name => "Jól", :regions => [:is]},
@@ -207,10 +261,7 @@ module Holidays
207
261
  {:mday => 8, :name => "Immacolata Concezione", :regions => [:it]},
208
262
  {:mday => 25, :name => "Natale", :regions => [:it]},
209
263
  {:mday => 26, :name => "Santo Stefano", :regions => [:it]},
210
- {:mday => 8, :name => "Maria Empfängnis", :regions => [:li]},
211
264
  {:mday => 24, :name => "Heilig Abend", :regions => [:li]},
212
- {:mday => 25, :name => "Weihnachten", :regions => [:li]},
213
- {:mday => 26, :name => "Stefanstag", :regions => [:li]},
214
265
  {:mday => 31, :name => "Silvester", :regions => [:li]},
215
266
  {:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]},
216
267
  {:mday => 25, :name => "Kerstmis", :regions => [:nl]},
@@ -224,21 +275,35 @@ module Holidays
224
275
  {:mday => 26, :name => "drugi dzień Bożego Narodzenia", :regions => [:pl]},
225
276
  {:mday => 31, :type => :informal, :name => "Sylwester", :regions => [:pl]},
226
277
  {:mday => 8, :name => "Imaculada Conceição", :regions => [:pt]},
227
- {:mday => 25, :name => "Natal", :regions => [:pt]}],
228
- 7 => [{:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
278
+ {:mday => 25, :name => "Natal", :regions => [:pt]},
279
+ {:mday => 1, :name => "Ziua Națională", :regions => [:ro]},
280
+ {:mday => 25, :name => "Sărbătoarea Nașterii Domnului", :regions => [:ro]},
281
+ {:mday => 26, :name => "Sărbătoarea Nașterii Domnului", :regions => [:ro]},
282
+ {:mday => 24, :name => "Štedrý deň", :regions => [:sk]},
283
+ {:mday => 25, :name => "1. sviatok vianočný", :regions => [:sk]},
284
+ {:mday => 26, :name => "2. sviatek vianočný", :regions => [:sk]}],
285
+ 7 => [{:mday => 21, :name => "National holiday", :regions => [:be]},
286
+ {:mday => 5, :name => "Den slovanských věrozvěstů Cyrila a Metoděje", :regions => [:cz]},
229
287
  {:mday => 6, :name => "Den upálení mistra Jana Husa", :regions => [:cz]},
230
288
  {:mday => 23, :name => "Santiago Apostol", :regions => [:es_ga]},
231
289
  {:mday => 14, :name => "Fête nationale", :regions => [:fr]},
232
290
  {:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]},
233
- {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]}],
234
- 9 => [{:mday => 28, :name => "Den české státnosti", :regions => [:cz]},
235
- {:mday => 2, :name => "Día de Ceuta", :regions => [:es_ce]},
236
- {:mday => 8, :name => "Día de Asturias", :regions => [:es_o]},
237
- {:mday => 8, :name => "Día de Extremadura", :regions => [:es_ex]},
238
- {:mday => 11, :name => "Fiesta Nacional de Cataluña", :regions => [:es_ct]},
239
- {:mday => 8, :name => "Maria Geburt", :regions => [:li]},
240
- {:mday => 30, :type => :informal, :name => "Dzień Chłopaka", :regions => [:pl]}],
241
- 4 => [{:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]},
291
+ {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]},
292
+ {:mday => 5, :name => "Sviatok svätého Cyrila a svätého Metoda", :regions => [:sk]}],
293
+ 3 => [{:mday => 1, :name => "Instauration de la République", :regions => [:ch_ne]},
294
+ {:mday => 19, :name => "Josephstag", :regions => [:ch_ur, :ch_sz, :ch_nw, :ch_ti, :ch_vs]},
295
+ {:mday => 25, :name => "Επέτειος της Επανάστασης του 1821", :regions => [:el]},
296
+ {:mday => 1, :name => "Día de las Islas Baleares", :regions => [:es_ib]},
297
+ {:mday => 19, :name => "San José", :regions => [:es_v, :es_vc, :es_cm, :es_mu, :es_m]},
298
+ {:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
299
+ {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir]},
300
+ {:mday => 15, :name => "1848/49-es forradalom és szabadságharc ünnepe", :regions => [:hu]},
301
+ {:mday => 17, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "St. Patrick's Day", :regions => [:ie]},
302
+ {:mday => 19, :name => "St. Josef", :regions => [:li]},
303
+ {:mday => 8, :type => :informal, :name => "Dzień Kobiet", :regions => [:pl]},
304
+ {:mday => 10, :type => :informal, :name => "Dzień Mężczyzn", :regions => [:pl]}],
305
+ 4 => [{:function => lambda { |year| Holidays.ch_gl_naefelser_fahrt(year) }, :function_id => "ch_gl_naefelser_fahrt(year)", :name => "Näfelser Fahrt", :regions => [:ch_gl]},
306
+ {:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]},
242
307
  {:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]},
243
308
  {:mday => 16, :type => :informal, :name => "Dronningens fødselsdag", :regions => [:dk]},
244
309
  {:mday => 23, :name => "San Jorge", :regions => [:es_ar, :es_cl]},
@@ -249,25 +314,32 @@ module Holidays
249
314
  {:mday => 1, :type => :informal, :name => "Prima Aprilis", :regions => [:pl]},
250
315
  {:mday => 22, :type => :informal, :name => "Międzynarodowy Dzień Ziemi", :regions => [:pl]},
251
316
  {:mday => 25, :name => "Dia da Liberdade", :regions => [:pt]}],
252
- 6 => [{:mday => 5, :name => "Grundlovsdag", :regions => [:dk]},
317
+ 6 => [{:mday => 23, :name => "Commémoration du plébiscite jurassien", :regions => [:ch_ju]},
318
+ {:mday => 29, :name => "San Pietro e Paolo", :regions => [:ch_ti]},
319
+ {:mday => 5, :name => "Grundlovsdag", :regions => [:dk]},
253
320
  {:mday => 15, :type => :informal, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]},
254
321
  {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]},
255
322
  {:mday => 9, :name => "Día de la Región de Murcia", :regions => [:es_mu]},
256
323
  {:mday => 9, :name => "Día de La Rioja", :regions => [:es_lo]},
257
- {:wday => 1, :week => 1, :name => "Bank Holiday", :regions => [:ie]},
324
+ {:mday => 22, :name => "Dan antifašističke borbe", :regions => [:hr]},
325
+ {:mday => 25, :name => "Dan državnosti", :regions => [:hr]},
326
+ {:wday => 1, :week => 1, :name => "June Bank Holiday", :regions => [:ie]},
258
327
  {:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]},
259
328
  {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]},
260
329
  {:mday => 2, :name => "Festa della Repubblica", :regions => [:it]},
261
330
  {:mday => 23, :type => :informal, :name => "Dzień Ojca", :regions => [:pl]},
262
331
  {:mday => 10, :name => "Dia de Portugal", :regions => [:pt]}],
263
- 3 => [{:mday => 25, :name => "Επέτειος της Επανάστασης του 1821", :regions => [:el]},
264
- {:mday => 1, :name => "Día de las Islas Baleares", :regions => [:es_ib]},
265
- {:mday => 19, :name => "San José", :regions => [:es_v, :es_vc, :es_cm, :es_mu, :es_m]},
266
- {:mday => 5, :name => "St. Piran's Day", :regions => [:gb_con]},
267
- {:mday => 17, :name => "St. Patrick's Day", :regions => [:gb_nir, :ie]},
268
- {:mday => 19, :name => "St. Josef", :regions => [:li]},
269
- {:mday => 8, :type => :informal, :name => "Dzień Kobiet", :regions => [:pl]},
270
- {:mday => 10, :type => :informal, :name => "Dzień Mężczyzn", :regions => [:pl]}],
332
+ 9 => [{:mday => 22, :name => "Mauritiustag", :regions => [:ch_ai]},
333
+ {:mday => 25, :name => "Bruderklausenfest", :regions => [:ch_ow]},
334
+ {:mday => 28, :name => "Den české státnosti", :regions => [:cz]},
335
+ {:mday => 2, :name => "Día de Ceuta", :regions => [:es_ce]},
336
+ {:mday => 8, :name => "Día de Asturias", :regions => [:es_o]},
337
+ {:mday => 8, :name => "Día de Extremadura", :regions => [:es_ex]},
338
+ {:mday => 11, :name => "Fiesta Nacional de Cataluña", :regions => [:es_ct]},
339
+ {:mday => 8, :name => "Maria Geburt", :regions => [:li]},
340
+ {:mday => 30, :type => :informal, :name => "Dzień Chłopaka", :regions => [:pl]},
341
+ {:mday => 1, :name => "Deň Ústavy Slovenskej republiky", :regions => [:sk]},
342
+ {:mday => 15, :name => "Sedembolestná Panna Mária", :regions => [:sk]}],
271
343
  2 => [{:mday => 28, :name => "Día de Andalucía", :regions => [:es_an]},
272
344
  {:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]},
273
345
  {:mday => 2, :name => "Maria Lichtmess", :regions => [:li]},
@@ -277,6 +349,45 @@ module Holidays
277
349
  end
278
350
  end
279
351
 
352
+ # Monday after the third Sunday of September
353
+ def self.ch_vd_lundi_du_jeune_federal(year)
354
+ date = Date.civil(year,9,1)
355
+ # Find the first Sunday of September
356
+ until date.wday.eql? 0 do
357
+ date += 1
358
+ end
359
+ # There are 15 days between the first Sunday
360
+ # and the Monday after the third Sunday
361
+ date + 15
362
+ end
363
+
364
+
365
+ # Thursday after the first Sunday of September
366
+ def self.ch_ge_jeune_genevois(year)
367
+ date = Date.civil(year,9,1)
368
+ # Find the first Sunday of September
369
+ until date.wday.eql? 0 do
370
+ date += 1
371
+ end
372
+ # Thursday is four days after Sunday
373
+ date + 4
374
+ end
375
+
376
+
377
+ # First Thursday of April. If the first Thursday of April is in the week before easter, then a week later.
378
+ def self.ch_gl_naefelser_fahrt(year)
379
+ date = Date.civil(year,4,1)
380
+ # Find the first Thursday of April
381
+ until date.wday.eql? 4 do
382
+ date += 1
383
+ end
384
+ if date.eql?(easter(year)-3)
385
+ date += 7
386
+ end
387
+ date
388
+ end
389
+
390
+
280
391
  # Germany: Wednesday before November 23
281
392
  def self.de_buss_und_bettag(year)
282
393
  date = Date.civil(year,11,23)
@@ -289,6 +400,15 @@ def self.de_buss_und_bettag(year)
289
400
  end
290
401
 
291
402
 
403
+ # Ireland - Stephens Day is always the day after christmas day
404
+ def self.ie_st_stephens_day(date)
405
+ date += 2 if date.wday == 6
406
+ date += 2 if date.wday == 0
407
+ date += 1 if date.wday == 1
408
+ date
409
+ end
410
+
411
+
292
412
  # Iceland: first day of summer (Thursday after 18 April)
293
413
  def self.is_sumardagurinn_fyrsti(year)
294
414
  date = Date.civil(year,4,18)