module Holidays::JP
def self.custom_methods
def self.custom_methods { "jp_health_sports_day_substitute(year)" => Proc.new { |year| days::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, 10, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 10, 2, 1)) vernal_equinox_day(year)" => Proc.new { |year| = se year en 1851..1899 19.8277 en 1900..1979 20.8357 en 1980..2099 20.8431 en 2100..2150 21.8510 se raise IndexError.new("Out of range") d += 0.242194 * (year - 1980) - ((year - 1980)/4).floor = day.floor .civil(year, 3, day) vernal_equinox_day_substitute(year)" => Proc.new { |year| = Holidays::Factory::Definition.custom_methods_repository.find("jp_vernal_equinox_day(year)").call(year) days::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday) marine_day_substitute(year)" => Proc.new { |year| days::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, 7, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 7, 3, 1)) national_culture_day(year)" => Proc.new { |year| = se year en 1851..1899 22.2588 en 1900..1979 23.2588 en 1980..2099 23.2488 en 2100..2150 24.2488 se raise IndexError.new("Out of range") d += 0.242194 * (year - 1980) - ((year - 1980)/4).floor = day.floor .civil(year, 9, day) national_culture_day_substitute(year)" => Proc.new { |year| = Holidays::Factory::Definition.custom_methods_repository.find("jp_national_culture_day(year)").call(year) days::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday) citizens_holiday(year)" => Proc.new { |year| = Holidays::Factory::Definition.custom_methods_repository.find("jp_national_culture_day(year)").call(year) cd.wday == 3 d - 1 l mountain_holiday(year)" => Proc.new { |year| .civil(year, 8, 11) mountain_holiday_substitute(year)" => Proc.new { |year| = Holidays::Factory::Definition.custom_methods_repository.find("jp_mountain_holiday(year)").call(year) days::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday) respect_for_aged_holiday_substitute(year)" => Proc.new { |year| days::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, 9, Holidays::Factory::DateCalculator.day_of_month_calculator.call(year, 9, 3, 1)) substitute_holiday(year, month, day)" => Proc.new { |year, month, day| = Date.civil(year, month, day) .wday == 0 ? (Holidays::Factory::Definition.custom_methods_repository.find("jp_next_weekday(date)").call(date+1)) : nil next_weekday(date)" => Proc.new { |date| is suuuucks. I have no idea how to make this not reach into our interal ruby API to do this. m punting, I'll come back to this. oliday = Holidays::JP.holidays_by_month[date.month].any? do |holiday| liday[:mday] == date.day .wday == 0 || is_holiday ? (Holidays::Factory::Definition.custom_methods_repository.find("jp_next_weekday(date)").call(date+1)) : date } end
def self.defined_regions
All the definitions are available at https://github.com/holidays/holidays
Definitions loaded: definitions/jp.yaml
This file is generated by the Ruby Holidays gem.
def self.defined_regions [:jp] end
def self.holidays_by_month
def self.holidays_by_month { 1 => [{:mday => 1, :name => "元日", :regions => [:jp]}, {:wday => 1, :week => 2, :name => "成人の日", :regions => [:jp]}, {:mday => 1, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}], 2 => [{:mday => 11, :name => "建国記念の日", :regions => [:jp]}, {:mday => 11, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}, {:mday => 23, :year_ranges => { :from => 2020 },:name => "天皇誕生日", :regions => [:jp]}, {:mday => 23, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :year_ranges => { :from => 2020 },:name => "振替休日", :regions => [:jp]}], 3 => [{:function => "jp_vernal_equinox_day(year)", :function_arguments => [:year], :name => "春分の日", :regions => [:jp]}, {:function => "jp_vernal_equinox_day_substitute(year)", :function_arguments => [:year], :name => "振替休日", :regions => [:jp]}], 4 => [{:mday => 29, :name => "昭和の日", :regions => [:jp]}, {:mday => 29, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}, {:mday => 30, :year_ranges => { :limited => [2019] },:name => "休日", :regions => [:jp]}], 5 => [{:mday => 1, :year_ranges => { :limited => [2019] },:name => "天皇即位", :regions => [:jp]}, {:mday => 2, :year_ranges => { :limited => [2019] },:name => "休日", :regions => [:jp]}, {:mday => 3, :name => "憲法記念日", :regions => [:jp]}, {:mday => 4, :name => "みどりの日", :regions => [:jp]}, {:mday => 5, :name => "こどもの日", :regions => [:jp]}, {:mday => 3, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}, {:mday => 4, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}, {:mday => 5, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}], 7 => [{:mday => 20, :year_ranges => { :between => 1996..2002 },:name => "海の日", :regions => [:jp]}, {:wday => 1, :week => 3, :year_ranges => { :between => 2003..2019 },:name => "海の日", :regions => [:jp]}, {:mday => 23, :year_ranges => { :limited => [2020] },:name => "海の日", :regions => [:jp]}, {:mday => 22, :year_ranges => { :limited => [2021] },:name => "海の日", :regions => [:jp]}, {:wday => 1, :week => 3, :year_ranges => { :from => 2022 },:name => "海の日", :regions => [:jp]}, {:function => "jp_marine_day_substitute(year)", :function_arguments => [:year], :year_ranges => { :between => 1996..2002 },:name => "振替休日", :regions => [:jp]}, {:mday => 23, :year_ranges => { :limited => [2021] },:name => "スポーツの日", :regions => [:jp]}, {:mday => 24, :year_ranges => { :limited => [2020] },:name => "スポーツの日", :regions => [:jp]}], 8 => [{:function => "jp_mountain_holiday(year)", :function_arguments => [:year], :year_ranges => { :between => 2016..2019 },:name => "山の日", :regions => [:jp]}, {:mday => 10, :year_ranges => { :limited => [2020] },:name => "山の日", :regions => [:jp]}, {:mday => 8, :year_ranges => { :limited => [2021] },:name => "山の日", :regions => [:jp]}, {:function => "jp_mountain_holiday(year)", :function_arguments => [:year], :year_ranges => { :from => 2022 },:name => "山の日", :regions => [:jp]}, {:function => "jp_mountain_holiday_substitute(year)", :function_arguments => [:year], :year_ranges => { :between => 2016..2020 },:name => "振替休日", :regions => [:jp]}, {:mday => 9, :year_ranges => { :limited => [2021] },:name => "振替休日", :regions => [:jp]}, {:function => "jp_mountain_holiday_substitute(year)", :function_arguments => [:year], :year_ranges => { :from => 2022 },:name => "振替休日", :regions => [:jp]}], 9 => [{:wday => 1, :week => 3, :name => "敬老の日", :regions => [:jp]}, {:function => "jp_respect_for_aged_holiday_substitute(year)", :function_arguments => [:year], :name => "振替休日", :regions => [:jp]}, {:function => "jp_citizens_holiday(year)", :function_arguments => [:year], :year_ranges => { :from => 2003 },:name => "国民の休日", :regions => [:jp]}, {:function => "jp_national_culture_day(year)", :function_arguments => [:year], :name => "秋分の日", :regions => [:jp]}, {:function => "jp_national_culture_day_substitute(year)", :function_arguments => [:year], :name => "振替休日", :regions => [:jp]}], 10 => [{:wday => 1, :week => 2, :year_ranges => { :until => 2019 },:name => "体育の日", :regions => [:jp]}, {:wday => 1, :week => 2, :year_ranges => { :from => 2022 },:name => "スポーツの日", :regions => [:jp]}, {:function => "jp_health_sports_day_substitute(year)", :function_arguments => [:year], :name => "振替休日", :regions => [:jp]}, {:mday => 22, :year_ranges => { :limited => [2019] },:name => "即位礼正殿の儀", :regions => [:jp]}], 11 => [{:mday => 3, :name => "文化の日", :regions => [:jp]}, {:mday => 3, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}, {:mday => 23, :name => "勤労感謝の日", :regions => [:jp]}, {:mday => 23, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :name => "振替休日", :regions => [:jp]}], 12 => [{:mday => 23, :year_ranges => { :until => 2018 },:name => "天皇誕生日", :regions => [:jp]}, {:mday => 23, :function => "jp_substitute_holiday(year, month, day)", :function_arguments => [:year, :month, :day], :year_ranges => { :until => 2018 },:name => "振替休日", :regions => [:jp]}] } end