mirror of
https://github.com/discourse/discourse.git
synced 2026-08-10 23:00:09 +08:00
99 lines
7.9 KiB
Ruby
Vendored
99 lines
7.9 KiB
Ruby
Vendored
# encoding: utf-8
|
|
module Holidays
|
|
# This file is generated by the Ruby Holidays gem.
|
|
#
|
|
# Definitions loaded: definitions/us.yaml, definitions/northamericainformal.yaml
|
|
#
|
|
# All the definitions are available at https://github.com/holidays/holidays
|
|
module US # :nodoc:
|
|
def self.defined_regions
|
|
[:us_la, :us_ct, :us_de, :us_ga, :us_hi, :us_in, :us_ky, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn, :us, :us_il, :us_vt, :us_ak, :us_ca, :us_dc, :us_me, :us_ma, :us_al, :us_ms, :us_ne, :us_mo, :us_sc, :us_wv, :us_ut, :us_ri, :us_nv, :us_ny, :us_nm, :us_md, :us_fl, :us_ia, :us_ks, :us_mi, :us_mn, :us_nh, :us_ok, :us_or, :us_pa, :us_tx, :us_va, :us_wa, :us_ar, :us_wi, :ca]
|
|
end
|
|
|
|
def self.holidays_by_month
|
|
{
|
|
0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -47, :name => "Mardi Gras Day", :regions => [:us_la]},
|
|
{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:us_ct, :us_de, :us_ga, :us_hi, :us_in, :us_la, :us_ky, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn]}],
|
|
1 => [{:mday => 1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:us]},
|
|
{:wday => 1, :week => 3, :name => "Martin Luther King, Jr. Day", :regions => [:us]}],
|
|
2 => [{:mday => 12, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Lincoln's Birthday", :regions => [:us_ct, :us_il]},
|
|
{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]},
|
|
{:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]},
|
|
{:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}],
|
|
3 => [{:wday => 2, :week => 1, :name => "Town Meeting Day", :regions => [:us_vt]},
|
|
{:mday => 26, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Prince Jonah Kuhio Kalanianaole Day", :regions => [:us_hi]},
|
|
{:wday => 1, :week => -1, :name => "Seward's Day", :regions => [:us_ak]},
|
|
{:mday => 31, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "César Chávez Day", :regions => [:us_ca]},
|
|
{:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}],
|
|
4 => [{:mday => 16, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Emancipation Day", :regions => [:us_dc]},
|
|
{:wday => 1, :week => 3, :name => "Patriots' Day", :regions => [:us_me, :us_ma]},
|
|
{:wday => 1, :week => -1, :name => "Confederate Memorial Day", :regions => [:us_al, :us_ms]},
|
|
{:wday => 5, :week => -1, :name => "Arbor Day", :regions => [:us_ne]},
|
|
{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]},
|
|
{:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}],
|
|
5 => [{:mday => 8, :name => "Truman Day", :regions => [:us_mo]},
|
|
{:mday => 10, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Confederate Memorial Day", :regions => [:us_sc]},
|
|
{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]},
|
|
{:wday => 0, :week => 2, :type => :informal, :name => "Mother's Day", :regions => [:us, :ca]},
|
|
{:wday => 6, :week => 3, :type => :informal, :name => "Armed Forces Day", :regions => [:us]}],
|
|
6 => [{:wday => 1, :week => 1, :name => "Jefferson Davis' Birthday", :regions => [:us_al]},
|
|
{:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "King Kamehameha I Day", :regions => [:us_hi]},
|
|
{:mday => 19, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Juneteenth", :regions => [:us]},
|
|
{:mday => 20, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "West Virginia Day", :regions => [:us_wv]},
|
|
{:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}],
|
|
7 => [{:mday => 4, :function => "to_weekday_if_weekend(date)", :function_arguments => [:date], :name => "Independence Day", :regions => [:us]},
|
|
{:mday => 24, :name => "Pioneer Day", :regions => [:us_ut]}],
|
|
8 => [{:wday => 1, :week => 2, :name => "Victory Day", :regions => [:us_ri]},
|
|
{:mday => 16, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Bennington Battle Day", :regions => [:us_vt]},
|
|
{:wday => 5, :week => 3, :name => "Statehood Day", :regions => [:us_hi]}],
|
|
9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}],
|
|
10 => [{:wday => 1, :week => 2, :name => "Indigenous Peoples Day", :regions => [:us]},
|
|
{:mday => 18, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Alaska Day", :regions => [:us_ak]},
|
|
{:wday => 5, :week => -1, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Nevada Day", :regions => [:us_nv]},
|
|
{:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}],
|
|
11 => [{:mday => 3, :name => "Election Day", :regions => [:us_il, :us_la, :us_ny]},
|
|
{:mday => 11, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Veterans Day", :regions => [:us]},
|
|
{:wday => 4, :week => 4, :name => "Thanksgiving", :regions => [:us]},
|
|
{:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Family Day", :regions => [:us_nv]},
|
|
{:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "State Holiday", :regions => [:us_ga]},
|
|
{:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Presidents' Day", :regions => [:us_nm]},
|
|
{:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Lincoln's Birthday", :regions => [:us_in]},
|
|
{:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "American Indian Heritage Day", :regions => [:us_md]},
|
|
{:function => "day_after_thanksgiving(year)", :function_arguments => [:year], :name => "Day after Thanksgiving (Black Friday)", :regions => [:us_ca, :us_de, :us_fl, :us_ga, :us_ia, :us_il, :us_ks, :us_ky, :us_me, :us_mi, :us_mn, :us_ms, :us_ne, :us_nh, :us_nc, :us_ok, :us_or, :us_pa, :us_sc, :us_tn, :us_tx, :us_va, :us_wa, :us_wv]}],
|
|
12 => [{:mday => 24, :name => "Christmas Eve Day", :regions => [:us_ar, :us_ks, :us_mi, :us_nc, :us_sc, :us_tx, :us_wi]},
|
|
{:mday => 25, :observed => "to_weekday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:us]},
|
|
{:mday => 28, :name => "Day after Christmas", :regions => [:us_nc, :us_sc, :us_tx]},
|
|
{:mday => 31, :name => "New Year's Eve", :regions => [:us_mi, :us_wi]}]
|
|
}
|
|
end
|
|
|
|
def self.custom_methods
|
|
{
|
|
"christmas_eve_holiday(date)" => Proc.new { |date|
|
|
beginning_of_month = Date.civil(date.year, date.month, 1)
|
|
(date.saturday? || date.sunday?) ? date.downto(beginning_of_month).find {|d| d if d.wday == 5} : date
|
|
},
|
|
|
|
"georgia_state_holiday(year, month)" => Proc.new { |year, month|
|
|
beginning_of_month = Date.civil(year, month, 1)
|
|
state_holiday = Date.civil(year, month, 26)
|
|
state_holiday.downto(beginning_of_month).find {|date| date if date.wday == 1 }
|
|
},
|
|
|
|
"election_day(year)" => Proc.new { |year|
|
|
Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 11, 1, 1) + 1
|
|
},
|
|
|
|
"us_inauguration_day(year)" => Proc.new { |year|
|
|
year % 4 == 1 ? 20 : nil
|
|
},
|
|
|
|
"day_after_thanksgiving(year)" => Proc.new { |year|
|
|
Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 11, 4, 4) + 1
|
|
},
|
|
|
|
|
|
}
|
|
end
|
|
end
|
|
end
|