diff --git a/data/us.yaml b/data/us.yaml index 92c89700..5ba06df4 100644 --- a/data/us.yaml +++ b/data/us.yaml @@ -35,7 +35,7 @@ months: - name: Independence Day regions: [us] mday: 4 - observed: to_weekday_if_weekend + observed: to_monday_if_sunday 9: - name: Labor Day week: 1 diff --git a/lib/holidays/north_america.rb b/lib/holidays/north_america.rb index e1f3093c..e42ab262 100644 --- a/lib/holidays/north_america.rb +++ b/lib/holidays/north_america.rb @@ -53,7 +53,7 @@ def self.holidays_by_month 7 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Canada Day", :regions => [:ca]}, {:mday => 12, :name => "Orangemen's Day", :regions => [:ca_nf]}, {:mday => 9, :name => "Nunavut Day", :regions => [:ca_nu]}, - {:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:us]}], + {:mday => 4, :observed => lambda { |date| Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Independence Day", :regions => [:us]}], 8 => [{:wday => 1, :week => 1, :name => "BC Day", :regions => [:ca_bc]}, {:wday => 1, :week => 1, :name => "Saskatchewan Day", :regions => [:ca_sk]}, {:wday => 1, :week => 1, :name => "Heritage Day", :regions => [:ca_ab]}, diff --git a/lib/holidays/us.rb b/lib/holidays/us.rb index 1284ecab..47c9b75a 100644 --- a/lib/holidays/us.rb +++ b/lib/holidays/us.rb @@ -27,7 +27,7 @@ def self.holidays_by_month {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}], 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]}, {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}], - 7 => [{:mday => 4, :observed => lambda { |date| Holidays.to_weekday_if_weekend(date) }, :observed_id => "to_weekday_if_weekend", :name => "Independence Day", :regions => [:us]}], + 7 => [{:mday => 4, :observed => lambda { |date| puts 'here'; Holidays.to_monday_if_sunday(date) }, :observed_id => "to_monday_if_sunday", :name => "Independence Day", :regions => [:us]}], 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}], 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]}, {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}], diff --git a/test/test_holidays.rb b/test/test_holidays.rb index 34e2fa52..934b0c7b 100644 --- a/test/test_holidays.rb +++ b/test/test_holidays.rb @@ -75,6 +75,16 @@ def test_region_params holidays = Holidays.on(@date, [:ca_bc,:ca]) assert_equal 1, holidays.length end + + def test_independence_day + assert_equal 1, Holidays.on(Date.civil(2014,7,4), :us, :observed).length + + # Not bank holiday if falls into a Sat + assert_equal 0, Holidays.on(Date.civil(2015,7,3), :us, :observed).length + + # Bank holiday if falls into a Sun + assert_equal 1, Holidays.on(Date.civil(2021,7,5), :us, :observed).length + end def test_observed_dates # Should fall on Tuesday the 1st