holidays 11.7.0 → 11.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +11 -8
  4. data/lib/generated_definitions/REGIONS.rb +3 -3
  5. data/lib/generated_definitions/ar.rb +1 -1
  6. data/lib/generated_definitions/at.rb +1 -1
  7. data/lib/generated_definitions/au.rb +2 -2
  8. data/lib/generated_definitions/be_fr.rb +1 -1
  9. data/lib/generated_definitions/be_nl.rb +1 -1
  10. data/lib/generated_definitions/bg.rb +1 -1
  11. data/lib/generated_definitions/br.rb +1 -1
  12. data/lib/generated_definitions/by.rb +1 -1
  13. data/lib/generated_definitions/ca.rb +1 -1
  14. data/lib/generated_definitions/ch.rb +1 -1
  15. data/lib/generated_definitions/cl.rb +3 -2
  16. data/lib/generated_definitions/cn.rb +1 -1
  17. data/lib/generated_definitions/co.rb +1 -1
  18. data/lib/generated_definitions/cr.rb +1 -1
  19. data/lib/generated_definitions/cy.rb +1 -1
  20. data/lib/generated_definitions/cz.rb +1 -1
  21. data/lib/generated_definitions/de.rb +1 -1
  22. data/lib/generated_definitions/dk.rb +1 -1
  23. data/lib/generated_definitions/ecbtarget.rb +1 -1
  24. data/lib/generated_definitions/ee.rb +1 -1
  25. data/lib/generated_definitions/es.rb +1 -1
  26. data/lib/generated_definitions/europe.rb +1 -1
  27. data/lib/generated_definitions/federalreserve.rb +1 -1
  28. data/lib/generated_definitions/federalreservebanks.rb +1 -1
  29. data/lib/generated_definitions/fedex.rb +1 -1
  30. data/lib/generated_definitions/fi.rb +1 -1
  31. data/lib/generated_definitions/fr.rb +1 -1
  32. data/lib/generated_definitions/gb.rb +1 -1
  33. data/lib/generated_definitions/ge.rb +1 -1
  34. data/lib/generated_definitions/gr.rb +1 -1
  35. data/lib/generated_definitions/hk.rb +1 -1
  36. data/lib/generated_definitions/hr.rb +1 -1
  37. data/lib/generated_definitions/hu.rb +1 -1
  38. data/lib/generated_definitions/ie.rb +1 -1
  39. data/lib/generated_definitions/il.rb +1 -1
  40. data/lib/generated_definitions/in.rb +1 -1
  41. data/lib/generated_definitions/is.rb +1 -1
  42. data/lib/generated_definitions/it.rb +1 -1
  43. data/lib/generated_definitions/jp.rb +1 -1
  44. data/lib/generated_definitions/ke.rb +1 -1
  45. data/lib/generated_definitions/kr.rb +1 -1
  46. data/lib/generated_definitions/kz.rb +1 -1
  47. data/lib/generated_definitions/li.rb +1 -1
  48. data/lib/generated_definitions/lt.rb +1 -1
  49. data/lib/generated_definitions/lu.rb +1 -1
  50. data/lib/generated_definitions/lv.rb +1 -1
  51. data/lib/generated_definitions/ma.rb +1 -1
  52. data/lib/generated_definitions/mc.rb +1 -1
  53. data/lib/generated_definitions/mt_en.rb +1 -1
  54. data/lib/generated_definitions/mt_mt.rb +1 -1
  55. data/lib/generated_definitions/mx.rb +1 -1
  56. data/lib/generated_definitions/my.rb +1 -1
  57. data/lib/generated_definitions/nerc.rb +1 -1
  58. data/lib/generated_definitions/ng.rb +1 -1
  59. data/lib/generated_definitions/nl.rb +1 -1
  60. data/lib/generated_definitions/no.rb +1 -1
  61. data/lib/generated_definitions/northamerica.rb +4 -3
  62. data/lib/generated_definitions/nyse.rb +1 -1
  63. data/lib/generated_definitions/nz.rb +1 -1
  64. data/lib/generated_definitions/pe.rb +1 -1
  65. data/lib/generated_definitions/ph.rb +1 -1
  66. data/lib/generated_definitions/pl.rb +1 -1
  67. data/lib/generated_definitions/pt.rb +1 -1
  68. data/lib/generated_definitions/ro.rb +1 -1
  69. data/lib/generated_definitions/rs_cyrl.rb +1 -1
  70. data/lib/generated_definitions/rs_la.rb +1 -1
  71. data/lib/generated_definitions/ru.rb +1 -1
  72. data/lib/generated_definitions/scandinavia.rb +1 -1
  73. data/lib/generated_definitions/se.rb +1 -1
  74. data/lib/generated_definitions/sg.rb +1 -1
  75. data/lib/generated_definitions/si.rb +1 -1
  76. data/lib/generated_definitions/sk.rb +1 -1
  77. data/lib/generated_definitions/southamerica.rb +2 -1
  78. data/lib/generated_definitions/th.rb +1 -1
  79. data/lib/generated_definitions/tn.rb +1 -1
  80. data/lib/generated_definitions/tr.rb +4 -1
  81. data/lib/generated_definitions/tsx.rb +1 -1
  82. data/lib/generated_definitions/ua.rb +1 -1
  83. data/lib/generated_definitions/unitednations.rb +1 -1
  84. data/lib/generated_definitions/ups.rb +1 -1
  85. data/lib/generated_definitions/us.rb +4 -3
  86. data/lib/generated_definitions/ve.rb +1 -1
  87. data/lib/generated_definitions/vn.rb +1 -1
  88. data/lib/generated_definitions/za.rb +1 -1
  89. data/lib/holidays/core_extensions/date.rb +11 -3
  90. data/lib/holidays/date_calculator/hijri_date.rb +10 -7
  91. data/lib/holidays/date_calculator/lunar_date.rb +269 -83
  92. data/lib/holidays/definition/context/generator.rb +27 -2
  93. data/lib/holidays/definition/custom_methods/cl.rb +8 -0
  94. data/lib/holidays/definition/custom_methods/cn.rb +7 -1
  95. data/lib/holidays/definition/custom_methods/registry.rb +2 -0
  96. data/lib/holidays/definition/custom_methods/tr.rb +20 -2
  97. data/lib/holidays/definition/generator/module.rb +1 -1
  98. data/lib/holidays/definition/repository/holidays_by_month.rb +2 -1
  99. data/lib/holidays/errors.rb +5 -0
  100. data/lib/holidays/finder/context/search.rb +67 -23
  101. data/lib/holidays/finder/context/year_holiday.rb +6 -8
  102. data/lib/holidays/finder/rules/in_region.rb +19 -14
  103. data/lib/holidays/version.rb +1 -1
  104. metadata +1 -1
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
15
+ 1 => [{:mday => 1, :name => "元日", :regions => [:jp]},
16
16
  {:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]},
17
17
  {:mday => 1, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}],
18
18
  2 => [{:mday => 11, :name => "建国記念の日", :regions => [:jp]},
@@ -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 => "Good Friday", :regions => [:ke]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:ke]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:ke]}],
17
17
  1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ke]}],
18
18
  5 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Labour Day", :regions => [:ke]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:function => "kr_seollal_eve(year, region)", :function_arguments => [:year, :region], :name => "설날 연휴", :regions => [:kr]},
15
+ 1 => [{:function => "kr_seollal_eve(year, region)", :function_arguments => [:year, :region], :name => "설날 연휴", :regions => [:kr]},
16
16
  {:mday => 1, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "설날", :regions => [:kr]},
17
17
  {:mday => 2, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "설날 연휴", :regions => [:kr]},
18
18
  {:mday => 1, :name => "신정", :regions => [:kr]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "Jańa jyl", :regions => [:kz]},
15
+ 1 => [{:mday => 1, :name => "Jańa jyl", :regions => [:kz]},
16
16
  {:mday => 2, :name => "Jańa jyl", :regions => [:kz]}],
17
17
  3 => [{:mday => 8, :name => "Halyqaralyq áıelder kúni", :regions => [:kz]},
18
18
  {:mday => 21, :name => "Naýryz Meıramy", :regions => [:kz]},
@@ -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 => -47, :name => "Fasnachtsdienstag", :regions => [:li]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Fasnachtsdienstag", :regions => [:li]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Karfreitag", :regions => [:li]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Ostern", :regions => [:li]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ostermontag", :regions => [:li]},
@@ -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], :name => "Šv. Velykos", :regions => [:lt]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :name => "Šv. Velykos", :regions => [:lt]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Antroji Velykų diena", :regions => [:lt]}],
17
17
  1 => [{:mday => 1, :name => "Naujieji metai", :regions => [:lt]}],
18
18
  2 => [{:mday => 16, :name => "Valstybės atkūrimo diena", :regions => [:lt]}],
@@ -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 => 1, :name => "Ouschterméindeg", :regions => [:lu]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ouschterméindeg", :regions => [:lu]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Christi Himmelfaart", :regions => [:lu]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Péngschtméindeg", :regions => [:lu]}],
18
18
  1 => [{:mday => 1, :name => "Neijoerschdag", :regions => [:lu]}],
@@ -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 => "Lielā Piektdiena", :regions => [:lv]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Lielā Piektdiena", :regions => [:lv]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :name => "Pirmās Lieldienas", :regions => [:lv]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Otrās Lieldienas", :regions => [:lv]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Vasarsvētki", :regions => [:lv]},
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "eid_al_fitr(year)", :function_arguments => [:year], :name => "Eid al-Fitr", :regions => [:ma]},
15
+ 0 => [{:function => "eid_al_fitr(year)", :function_arguments => [:year], :name => "Eid al-Fitr", :regions => [:ma]},
16
16
  {:function => "eid_al_adha(year)", :function_arguments => [:year], :name => "Eid al-Adha", :regions => [:ma]}],
17
17
  1 => [{:mday => 1, :name => "Ras l' âm", :regions => [:ma]},
18
18
  {:mday => 11, :name => "Takdim watikat al-istiqlal", :regions => [:ma]}],
@@ -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 => 1, :name => "Lundi de Pâques", :regions => [:mc]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Lundi de Pâques", :regions => [:mc]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Ascension", :regions => [:mc]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 50, :name => "Lundi de Pentecôte", :regions => [:mc]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Fête Dieu", :regions => [:mc]}],
@@ -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 => "Good Friday", :regions => [:mt_en]}],
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:mt_en]}],
16
16
  1 => [{:mday => 1, :name => "New Year's Day", :regions => [:mt_en]}],
17
17
  2 => [{:mday => 10, :name => "Feast of Saint Paul's Shipwreck in Malta", :regions => [:mt_en]}],
18
18
  3 => [{:mday => 19, :name => "Feast of Saint Joseph", :regions => [:mt_en]},
@@ -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 => "Il-Ġimgħa l-Kbira", :regions => [:mt_mt]}],
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Il-Ġimgħa l-Kbira", :regions => [:mt_mt]}],
16
16
  1 => [{:mday => 1, :name => "L-Ewwel tas-Sena", :regions => [:mt_mt]}],
17
17
  2 => [{:mday => 10, :name => "Nawfraġju ta' San Pawl", :regions => [:mt_mt]}],
18
18
  3 => [{:mday => 19, :name => "San Ġużepp", :regions => [:mt_mt]},
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "Año nuevo", :regions => [:mx]},
15
+ 1 => [{:mday => 1, :name => "Año nuevo", :regions => [:mx]},
16
16
  {:mday => 6, :type => :informal, :name => "Dia de los Santos Reyes", :regions => [:mx]}],
17
17
  2 => [{:wday => 1, :week => 1, :name => "Día de la Constitución", :regions => [:mx]},
18
18
  {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "hari_raya_puasa(year)", :function_arguments => [:year], :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Hari Raya Puasa", :regions => [:my]},
15
+ 0 => [{:function => "hari_raya_puasa(year)", :function_arguments => [:year], :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Hari Raya Puasa", :regions => [:my]},
16
16
  {:function => "hari_raya_haji(year)", :function_arguments => [:year], :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Hari Raya Haji", :regions => [:my]}],
17
17
  1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:my]}],
18
18
  5 => [{:mday => 1, :name => "Labour Day", :regions => [:my]}],
@@ -12,7 +12,7 @@ module Holidays
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 => [:nerc]}],
15
+ 1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:nerc]}],
16
16
  5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:nerc]}],
17
17
  7 => [{:mday => 4, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:nerc]}],
18
18
  9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:nerc]}],
@@ -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 => "Good Friday", :regions => [:ng]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:ng]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:ng]}],
17
17
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ng]}],
18
18
  5 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Workers' Day", :regions => [:ng]},
@@ -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, :type => :informal, :name => "Goede Vrijdag", :regions => [:nl]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Goede Vrijdag", :regions => [:nl]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :name => "Eerste Paasdag", :regions => [:nl]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Tweede Paasdag", :regions => [:nl]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 39, :name => "Hemelvaartsdag", :regions => [:nl]},
@@ -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 => -49, :type => :informal, :name => "Fastelavn", :regions => [:no]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -49, :type => :informal, :name => "Fastelavn", :regions => [:no]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -7, :name => "Palmesøndag", :regions => [:no]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Skjærtorsdag", :regions => [:no]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Langfredag", :regions => [:no]},
@@ -7,12 +7,12 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module NORTHAMERICA # :nodoc:
9
9
  def self.defined_regions
10
- [:ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :mx, :mx_pue, :us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok]
10
+ [:ca, :ca_qc, :ca_ab, :ca_sk, :ca_on, :ca_bc, :ca_nb, :ca_mb, :ca_ns, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_yt, :mx, :mx_pue, :us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_az, :us_ia, :us_mt, :us_nh, :us_ok, :us_wi, :us_wv, :us_wy, :us_vi, :us_ut, :us_ri, :us_co, :us_il, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_ks]
11
11
  end
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 => [:ca]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:ca]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Easter Sunday", :regions => [:ca]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :type => :informal, :name => "Easter Monday", :regions => [:ca]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Shrove Tuesday", :regions => [:us_fl]},
@@ -75,7 +75,8 @@ module Holidays
75
75
  {:wday => 1, :week => 1, :name => "Jefferson Davis' Birthday", :regions => [:us_al]},
76
76
  {:mday => 3, :name => "Birthday of Jefferson Davis", :regions => [:us_fl]},
77
77
  {:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "King Kamehameha I Day", :regions => [:us_hi]},
78
- {:mday => 19, :year_ranges => { :from => 2021 },:observed => "juneteenth_national_independence_day(region, date)", :observed_arguments => [:region, :date], :name => "Juneteenth National Independence Day", :regions => [:us]},
78
+ {:mday => 19, :year_ranges => { :from => 2021 },:observed => "juneteenth_national_independence_day(region, date)", :observed_arguments => [:region, :date], :name => "Juneteenth National Independence Day", :regions => [:us], :excluded_regions => [:us_az, :us_ar, :us_ca, :us_fl, :us_hi, :us_ia, :us_in, :us_ms, :us_mt, :us_nc, :us_nd, :us_nh, :us_ok, :us_sc, :us_wi, :us_wv, :us_wy]},
79
+ {:mday => 19, :year_ranges => { :from => 2021 },:observed => "juneteenth_national_independence_day(region, date)", :observed_arguments => [:region, :date], :type => :informal, :name => "Juneteenth National Independence Day", :regions => [:us_az, :us_ar, :us_ca, :us_fl, :us_hi, :us_ia, :us_in, :us_ms, :us_mt, :us_nc, :us_nd, :us_nh, :us_ok, :us_sc, :us_wi, :us_wv, :us_wy]},
79
80
  {:mday => 19, :name => "Emancipation Day in Texas", :regions => [:us_tx]},
80
81
  {:mday => 20, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "West Virginia Day", :regions => [:us_wv]},
81
82
  {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
@@ -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 => "Good Friday", :regions => [:nyse]}],
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:nyse]}],
16
16
  1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:nyse]},
17
17
  {:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:nyse]}],
18
18
  2 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:nyse]}],
@@ -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 => "Good Friday", :regions => [:nz]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:nz]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:nz]},
17
17
  {:function => "matariki(year)", :function_arguments => [:year], :name => "Matariki", :regions => [:nz]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Southland Anniversary Day", :regions => [:nz_sl]}],
@@ -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 => -3, :name => "Jueves Santo", :regions => [:pe]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Jueves Santo", :regions => [:pe]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:pe]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :type => :informal, :name => "Pascua", :regions => [:pe]}],
18
18
  1 => [{:mday => 1, :name => "Año Nuevo", :regions => [:pe]},
@@ -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 => -3, :name => "Maundy Thursday", :regions => [:ph]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Maundy Thursday", :regions => [:ph]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:ph]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Holy Saturday", :regions => [:ph]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :name => "Easter Sunday", :regions => [:ph]}],
@@ -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 => -52, :type => :informal, :name => "Tłusty Czwartek", :regions => [:pl]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -52, :type => :informal, :name => "Tłusty Czwartek", :regions => [:pl]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :type => :informal, :name => "Ostatki", :regions => [:pl]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -46, :type => :informal, :name => "Środa Popielcowa", :regions => [:pl]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -7, :type => :informal, :name => "Niedziela Palmowa", :regions => [:pl]},
@@ -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 => -47, :type => :informal, :name => "Carnaval", :regions => [:pt]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :type => :informal, :name => "Carnaval", :regions => [:pt]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Sexta-feira Santa", :regions => [:pt]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :name => "Páscoa", :regions => [:pt]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 60, :name => "Corpo de Deus", :regions => [:pt]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2018 },:name => "Paștele - Vinerea Mare", :regions => [:ro]},
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :year_ranges => { :from => 2018 },:name => "Paștele - Vinerea Mare", :regions => [:ro]},
16
16
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Paștele - duminică", :regions => [:ro]},
17
17
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Paștele - luni", :regions => [:ro]},
18
18
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "Rusaliile - 50", :regions => [:ro]},
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Велики петак", :regions => [:rs_cyrl]},
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Велики петак", :regions => [:rs_cyrl]},
16
16
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Велика Субота", :regions => [:rs_cyrl]},
17
17
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Васкрс", :regions => [:rs_cyrl]},
18
18
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Васкрсни понедељак", :regions => [:rs_cyrl]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Veliki Petak", :regions => [:rs_la]},
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Veliki Petak", :regions => [:rs_la]},
16
16
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Velika Subota", :regions => [:rs_la]},
17
17
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :name => "Uskrs", :regions => [:rs_la]},
18
18
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Vaskrsni ponedeljak", :regions => [:rs_la]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "Новый год", :regions => [:ru]},
15
+ 1 => [{:mday => 1, :name => "Новый год", :regions => [:ru]},
16
16
  {:mday => 2, :name => "Новогодний праздник", :regions => [:ru]},
17
17
  {:mday => 3, :name => "Новогодний праздник", :regions => [:ru]},
18
18
  {:mday => 4, :name => "Новогодний праздник", :regions => [:ru]},
@@ -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 => -49, :type => :informal, :name => "Fastelavn", :regions => [:dk]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -49, :type => :informal, :name => "Fastelavn", :regions => [:dk]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -7, :type => :informal, :name => "Palmesøndag", :regions => [:dk]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Skærtorsdag", :regions => [:dk]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Langfredag", :regions => [:dk]},
@@ -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 => "Långfredagen", :regions => [:se]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Långfredagen", :regions => [:se]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -1, :type => :informal, :name => "Påskafton", :regions => [:se]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :name => "Påskdagen", :regions => [:se]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Annandag påsk", :regions => [:se]},
@@ -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 => "Good Friday", :regions => [:sg]}],
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:sg]}],
16
16
  1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:sg]},
17
17
  {:mday => 1, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Chinese New Year", :regions => [:sg]},
18
18
  {:mday => 2, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Chinese New Year", :regions => [:sg]}],
@@ -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], :name => "velikonočna nedelja", :regions => [:si]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :name => "velikonočna nedelja", :regions => [:si]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "velikonočni ponedeljek", :regions => [:si]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 49, :name => "binkošti", :regions => [:si]}],
18
18
  1 => [{:mday => 1, :name => "novo leto", :regions => [:si]},
@@ -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 => 1, :name => "Veľkonočný pondelok", :regions => [:sk]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Veľkonočný pondelok", :regions => [:sk]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Veľký piatok", :regions => [:sk]}],
17
17
  1 => [{:mday => 1, :name => "Nový rok", :regions => [:sk]},
18
18
  {:mday => 6, :name => "Zjavenie Pána (Traja králi)", :regions => [:sk]}],
@@ -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 => "Viernes Santo", :regions => [:ar]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:ar]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -48, :name => "Carnaval Lunes", :regions => [:ar]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Carnaval Martes", :regions => [:ar]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :type => :informal, :name => "Carnaval", :regions => [:br]},
@@ -23,6 +23,7 @@ module Holidays
23
23
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -1, :name => "Sábado Santo", :regions => [:cl]},
24
24
  {:function => "st_peter_st_paul_cl(year)", :function_arguments => [:year], :year_ranges => { :from => 2000 },:name => "San Pedro y San Pablo", :regions => [:cl]},
25
25
  {:function => "other_churches_day_cl(year)", :function_arguments => [:year], :year_ranges => { :from => 2008 },:name => "Día de las Iglesias Evangélicas y Protestantes", :regions => [:cl]},
26
+ {:function => "indigenous_peoples_day_cl(year)", :function_arguments => [:year], :year_ranges => { :from => 2021 },:name => "Día Nacional de los Pueblos Indígenas", :regions => [:cl]},
26
27
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Jueves Santo", :regions => [:co]},
27
28
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:co]},
28
29
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 43, :name => "Día de la Ascensión", :regions => [:co]},
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "วันขึ้นปีใหม่", :regions => [:th]}],
15
+ 1 => [{:mday => 1, :name => "วันขึ้นปีใหม่", :regions => [:th]}],
16
16
  4 => [{:mday => 6, :name => "วันจักรี", :regions => [:th]},
17
17
  {:mday => 13, :name => "วันสงกรานต์", :regions => [:th]},
18
18
  {:mday => 14, :name => "วันสงกรานต์", :regions => [:th]},
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:tn]},
15
+ 1 => [{:mday => 1, :name => "Jour de l'an", :regions => [:tn]},
16
16
  {:mday => 14, :name => "Fête de la Révolution et de la Jeunesse", :regions => [:tn]}],
17
17
  3 => [{:mday => 20, :name => "Fête de l'Indépendance", :regions => [:tn]}],
18
18
  4 => [{:mday => 9, :name => "Journée des Martyrs", :regions => [:tn]}],
@@ -12,9 +12,12 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "ramadan_feast(year)", :function_arguments => [:year], :name => "Ramazan Bayramı", :regions => [:tr]},
15
+ 0 => [{:function => "ramadan_feast(year)", :function_arguments => [:year], :name => "Ramazan Bayramı", :regions => [:tr]},
16
16
  {:function => "ramadan_feast(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ramazan Bayramı (ikinci tatil)", :regions => [:tr]},
17
17
  {:function => "ramadan_feast(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Ramazan Bayramı (üçüncü tatil)", :regions => [:tr]},
18
+ {:function => "ramadan_feast_second_in_year(year)", :function_arguments => [:year], :name => "Ramazan Bayramı", :regions => [:tr]},
19
+ {:function => "ramadan_feast_second_in_year(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Ramazan Bayramı (ikinci tatil)", :regions => [:tr]},
20
+ {:function => "ramadan_feast_second_in_year(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Ramazan Bayramı (üçüncü tatil)", :regions => [:tr]},
18
21
  {:function => "sacrifice_feast(year)", :function_arguments => [:year], :name => "Kurban Bayramı", :regions => [:tr]},
19
22
  {:function => "sacrifice_feast(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Kurban Bayramı (ikinci tatil)", :regions => [:tr]},
20
23
  {:function => "sacrifice_feast(year)", :function_arguments => [:year], :function_modifier => 2, :name => "Kurban Bayramı (üçüncü tatil)", :regions => [:tr]},
@@ -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 => "Good Friday", :regions => [:tsx]}],
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:tsx]}],
16
16
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:tsx]}],
17
17
  2 => [{:wday => 1, :week => 3, :year_ranges => { :from => 2008 },:name => "Family Day", :regions => [:tsx]}],
18
18
  5 => [{:function => "ca_victoria_day(year)", :function_arguments => [:year], :name => "Victoria Day", :regions => [:tsx]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Великдень", :regions => [:ua]},
15
+ 0 => [{:function => "orthodox_easter(year)", :function_arguments => [:year], :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Великдень", :regions => [:ua]},
16
16
  {:function => "orthodox_easter(year)", :function_arguments => [:year], :function_modifier => 49, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Трійця", :regions => [:ua]}],
17
17
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Новий Рік", :regions => [:ua]},
18
18
  {:mday => 7, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Різдво Христове", :regions => [:ua]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 2 => [{:mday => 2, :name => "International Mother Language Day", :regions => [:unitednations]}],
15
+ 2 => [{:mday => 2, :name => "International Mother Language Day", :regions => [:unitednations]}],
16
16
  3 => [{:mday => 8, :name => "United Nations Day for Women's Rights and International Peace", :regions => [:unitednations]},
17
17
  {:mday => 21, :name => "International Day for the Elimination of Racial Discrimination", :regions => [:unitednations]},
18
18
  {:mday => 21, :name => "Beginning of the Week of Solidarity with the Peoples Struggling against Racism and Racial Discrimination", :regions => [:unitednations]},
@@ -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 => [:ups]},
15
+ 1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:ups]},
16
16
  {:wday => 1, :week => 3, :name => "Birthday of Martin Luther King, Jr", :regions => [:ups]}],
17
17
  5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:ups]}],
18
18
  7 => [{:mday => 4, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Independence Day", :regions => [:ups]}],
@@ -7,12 +7,12 @@ module Holidays
7
7
  # All the definitions are available at https://github.com/holidays/holidays
8
8
  module US # :nodoc:
9
9
  def self.defined_regions
10
- [:us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_wv, :us_vi, :us_ut, :us_ri, :us_az, :us_co, :us_il, :us_mt, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_wi, :us_wy, :us_ia, :us_ks, :us_nh, :us_ok, :ca]
10
+ [:us_fl, :us_al, :us_la, :us, :us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn, :us_ga, :us_ms, :us_id, :us_ar, :us_tx, :us_dc, :us_md, :us_va, :us_vt, :us_ak, :us_ca, :us_me, :us_ma, :us_ne, :us_mo, :us_sc, :us_az, :us_ia, :us_mt, :us_nh, :us_ok, :us_wi, :us_wv, :us_wy, :us_vi, :us_ut, :us_ri, :us_co, :us_il, :us_nm, :us_ny, :us_oh, :us_mi, :us_mn, :us_nv, :us_or, :us_sd, :us_wa, :us_ks, :ca]
11
11
  end
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Shrove Tuesday", :regions => [:us_fl]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Shrove Tuesday", :regions => [:us_fl]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Mardi Gras Day", :regions => [:us_al, :us_la]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :type => :informal, :name => "Good Friday", :regions => [:us]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_la, :us_nj, :us_nc, :us_nd, :us_pa, :us_pr, :us_tn]},
@@ -53,7 +53,8 @@ module Holidays
53
53
  6 => [{:wday => 1, :week => 1, :name => "Jefferson Davis' Birthday", :regions => [:us_al]},
54
54
  {:mday => 3, :name => "Birthday of Jefferson Davis", :regions => [:us_fl]},
55
55
  {:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "King Kamehameha I Day", :regions => [:us_hi]},
56
- {:mday => 19, :year_ranges => { :from => 2021 },:observed => "juneteenth_national_independence_day(region, date)", :observed_arguments => [:region, :date], :name => "Juneteenth National Independence Day", :regions => [:us]},
56
+ {:mday => 19, :year_ranges => { :from => 2021 },:observed => "juneteenth_national_independence_day(region, date)", :observed_arguments => [:region, :date], :name => "Juneteenth National Independence Day", :regions => [:us], :excluded_regions => [:us_az, :us_ar, :us_ca, :us_fl, :us_hi, :us_ia, :us_in, :us_ms, :us_mt, :us_nc, :us_nd, :us_nh, :us_ok, :us_sc, :us_wi, :us_wv, :us_wy]},
57
+ {:mday => 19, :year_ranges => { :from => 2021 },:observed => "juneteenth_national_independence_day(region, date)", :observed_arguments => [:region, :date], :type => :informal, :name => "Juneteenth National Independence Day", :regions => [:us_az, :us_ar, :us_ca, :us_fl, :us_hi, :us_ia, :us_in, :us_ms, :us_mt, :us_nc, :us_nd, :us_nh, :us_ok, :us_sc, :us_wi, :us_wv, :us_wy]},
57
58
  {:mday => 19, :name => "Emancipation Day in Texas", :regions => [:us_tx]},
58
59
  {:mday => 20, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "West Virginia Day", :regions => [:us_wv]},
59
60
  {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
@@ -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 => -48, :name => "Lunes Carnaval", :regions => [:ve]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -48, :name => "Lunes Carnaval", :regions => [:ve]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Martes Carnaval", :regions => [:ve]},
17
17
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -3, :name => "Jueves Santo", :regions => [:ve]},
18
18
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Viernes Santo", :regions => [:ve]}],
@@ -12,7 +12,7 @@ module Holidays
12
12
 
13
13
  def self.holidays_by_month
14
14
  {
15
- 1 => [{:mday => 1, :name => "Tết dương lịch", :regions => [:vn]}],
15
+ 1 => [{:mday => 1, :name => "Tết dương lịch", :regions => [:vn]}],
16
16
  3 => [{:mday => 10, :function => "lunar_to_solar(year, month, day, region)", :function_arguments => [:year, :month, :day, :region], :name => "Giỗ tổ Hùng Vương", :regions => [:vn]}],
17
17
  4 => [{:mday => 30, :name => "Ngày Giải phóng miền Nam, thống nhất đất nước", :regions => [:vn]}],
18
18
  5 => [{:mday => 1, :name => "Ngày Quốc tế Lao động", :regions => [:vn]}],
@@ -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 => "Good Friday", :regions => [:za]},
15
+ 0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:za]},
16
16
  {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Family Day", :regions => [:za]}],
17
17
  1 => [{:mday => 1, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:za]}],
18
18
  3 => [{:mday => 21, :observed => "to_monday_if_sunday(date)", :observed_arguments => [:date], :name => "Human Rights Day", :regions => [:za]}],
@@ -3,6 +3,7 @@ module Holidays
3
3
  module Date
4
4
  def self.included(base)
5
5
  base.extend ClassMethods
6
+ base.include EndOfMonth unless base.method_defined?(:end_of_month)
6
7
  end
7
8
 
8
9
  # Get holidays on the current date.
@@ -42,9 +43,16 @@ module Holidays
42
43
  )
43
44
  end
44
45
 
45
- def end_of_month
46
- last_day = ::Time.days_in_month( self.month, self.year )
47
- change(:day => last_day)
46
+ # Defined only when the including class has no end_of_month of its own,
47
+ # so implementations such as ActiveSupport's are never shadowed.
48
+ module EndOfMonth
49
+ # Returns the last day of the month as a Date.
50
+ #
51
+ # Date.new(2016, 8, 1).end_of_month
52
+ # => #<Date: 2016-08-31 ...>
53
+ def end_of_month
54
+ ::Date.new(year, month, -1)
55
+ end
48
56
  end
49
57
 
50
58
  module ClassMethods