holidays 4.7.0 → 5.0.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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/CHANGELOG.md +9 -0
  4. data/CONTRIBUTING.md +21 -11
  5. data/Makefile +9 -6
  6. data/holidays.gemspec +1 -1
  7. data/lib/generated_definitions/MANIFEST +1 -0
  8. data/lib/generated_definitions/REGIONS.rb +1 -1
  9. data/lib/generated_definitions/hk.rb +112 -0
  10. data/lib/generated_definitions/kr.rb +4 -4
  11. data/lib/holidays/errors.rb +1 -0
  12. data/lib/holidays/finder/context/parse_options.rb +8 -3
  13. data/lib/holidays/load_all_definitions.rb +0 -11
  14. data/lib/holidays/version.rb +1 -1
  15. data/test/defs/test_defs_hk.rb +38 -0
  16. data/test/defs/test_defs_jp.rb +1 -0
  17. data/test/defs/test_defs_kr.rb +1 -1
  18. data/test/holidays/definition/validator/test_region.rb +4 -0
  19. data/test/holidays/finder/context/test_parse_options.rb +9 -1
  20. data/test/integration/test_all_regions.rb +4 -4
  21. data/test/integration/test_custom_holidays.rb +4 -4
  22. data/test/integration/test_holidays.rb +6 -6
  23. metadata +6 -60
  24. data/definitions/README.md +0 -353
  25. data/definitions/ar.yaml +0 -93
  26. data/definitions/at.yaml +0 -72
  27. data/definitions/au.yaml +0 -378
  28. data/definitions/be_fr.yaml +0 -69
  29. data/definitions/be_nl.yaml +0 -69
  30. data/definitions/bg.yaml +0 -127
  31. data/definitions/br.yaml +0 -77
  32. data/definitions/ca.yaml +0 -317
  33. data/definitions/ch.yaml +0 -193
  34. data/definitions/cl.yaml +0 -94
  35. data/definitions/cr.yaml +0 -65
  36. data/definitions/cz.yaml +0 -73
  37. data/definitions/de.yaml +0 -209
  38. data/definitions/dk.yaml +0 -130
  39. data/definitions/ecb_target.yaml +0 -44
  40. data/definitions/el.yaml +0 -84
  41. data/definitions/es.yaml +0 -203
  42. data/definitions/federal_reserve.yaml +0 -114
  43. data/definitions/fedex.yaml +0 -62
  44. data/definitions/fi.yaml +0 -115
  45. data/definitions/fr.yaml +0 -79
  46. data/definitions/gb.yaml +0 -151
  47. data/definitions/hr.yaml +0 -79
  48. data/definitions/hu.yaml +0 -63
  49. data/definitions/ie.yaml +0 -89
  50. data/definitions/index.yaml +0 -61
  51. data/definitions/is.yaml +0 -146
  52. data/definitions/it.yaml +0 -67
  53. data/definitions/jp.yaml +0 -321
  54. data/definitions/kr.yaml +0 -282
  55. data/definitions/li.yaml +0 -107
  56. data/definitions/lt.yaml +0 -89
  57. data/definitions/lu.yaml +0 -56
  58. data/definitions/ma.yaml +0 -52
  59. data/definitions/mx.yaml +0 -106
  60. data/definitions/my.yaml +0 -51
  61. data/definitions/nerc.yaml +0 -51
  62. data/definitions/nl.yaml +0 -73
  63. data/definitions/no.yaml +0 -90
  64. data/definitions/north_america_informal.yaml +0 -61
  65. data/definitions/nyse.yaml +0 -64
  66. data/definitions/nz.yaml +0 -163
  67. data/definitions/pe.yaml +0 -119
  68. data/definitions/ph.yaml +0 -94
  69. data/definitions/pl.yaml +0 -320
  70. data/definitions/pt.yaml +0 -89
  71. data/definitions/ro.yaml +0 -78
  72. data/definitions/se.yaml +0 -120
  73. data/definitions/sg.yaml +0 -56
  74. data/definitions/si.yaml +0 -86
  75. data/definitions/sk.yaml +0 -80
  76. data/definitions/united_nations.yaml +0 -189
  77. data/definitions/ups.yaml +0 -62
  78. data/definitions/us.yaml +0 -103
  79. data/definitions/ve.yaml +0 -74
  80. data/definitions/vi.yaml +0 -29
  81. data/definitions/za.yaml +0 -80
@@ -1,321 +0,0 @@
1
- # Japanese holiday definitions for Ruby Holiday gem.
2
- # Reference:
3
- # - http://www.h3.dion.ne.jp/~sakatsu/holiday_topic.htm
4
- # - http://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html
5
- # - https://en.wikipedia.org/wiki/Public_holidays_in_Japan
6
- #
7
- # For Japanese/English translations of each holiday:
8
- # - http://www.japanesecalendar.net/holidays/2016/
9
- #
10
- # This definition can calculate current Japanese holidays,
11
- # don't compat with past changes of Japan Holiday Act.
12
- #
13
- # CHANGES:
14
- # 2010-12-25: Initial version by Tatsuki Sugiura <sugi@nemui.org>
15
- # 2014-11-09: Added substitute holiday by Yoshiyuki Hirano <yoshiyuki.hirano@henteco-labs.com>
16
- # 2015-05-10: Non-Monday substitute holidays by Shuhei Kagawa <shuhei.kagawa@gmail.com>
17
- # 2015-12-15: Added mountain day by Tsuyoshi Sano <ttwo32@gmail.com>
18
- # 2016-03-26: Updated to match new custom method signature. See below for more. Phil Trimble <philtrimble@gmail.com>
19
- #
20
- # NOTE: This is the most complex set of custom date methods in the entire
21
- # project, mainly surrounding the idea of 'substitute' holidays. Since this is
22
- # the only one that is this complex I have settled on a less-than-ideal solution.
23
- # It is overly verbose and not easy to follow. It will be a target for refactoring
24
- # in the near future.
25
- ---
26
- months:
27
- 1:
28
- - name: 元日
29
- regions: [jp]
30
- mday: 1
31
- - name: 成人の日
32
- regions: [jp]
33
- wday: 1
34
- week: 2
35
- - name: 振替休日
36
- regions: [jp]
37
- mday: 1
38
- function: jp_substitute_holiday(year, month, day)
39
- 2:
40
- - name: 建国記念日
41
- regions: [jp]
42
- mday: 11
43
- - name: 振替休日
44
- regions: [jp]
45
- mday: 11
46
- function: jp_substitute_holiday(year, month, day)
47
- 3:
48
- - name: 春分の日
49
- regions: [jp]
50
- function: jp_vernal_equinox_day(year)
51
- - name: 振替休日
52
- regions: [jp]
53
- function: jp_vernal_equinox_day_substitute(year)
54
- 4:
55
- - name: 昭和の日
56
- regions: [jp]
57
- mday: 29
58
- - name: 振替休日
59
- regions: [jp]
60
- mday: 29
61
- function: jp_substitute_holiday(year, month, day)
62
- 5:
63
- - name: 憲法記念日
64
- regions: [jp]
65
- mday: 3
66
- - name: みどりの日
67
- regions: [jp]
68
- mday: 4
69
- - name: こどもの日
70
- regions: [jp]
71
- mday: 5
72
- - name: 振替休日
73
- regions: [jp]
74
- mday: 3
75
- function: jp_substitute_holiday(year, month, day)
76
- - name: 振替休日
77
- regions: [jp]
78
- mday: 4
79
- function: jp_substitute_holiday(year, month, day)
80
- - name: 振替休日
81
- regions: [jp]
82
- mday: 5
83
- function: jp_substitute_holiday(year, month, day)
84
- 7:
85
- - name: 海の日
86
- regions: [jp]
87
- mday: 20
88
- year_ranges:
89
- - between: 1996..2002
90
- - name: 海の日
91
- regions: [jp]
92
- wday: 1
93
- week: 3
94
- year_ranges:
95
- - after: 2003
96
- - name: 振替休日
97
- regions: [jp]
98
- function: jp_marine_day_substitute(year)
99
- year_ranges:
100
- - between: 1996..2002
101
- 8:
102
- - name: 山の日
103
- regions: [jp]
104
- year_ranges:
105
- - after: 2016
106
- function: jp_mountain_holiday(year)
107
- - name: 振替休日
108
- regions: [jp]
109
- year_ranges:
110
- - after: 2016
111
- function: jp_mountain_holiday_substitute(year)
112
- 9:
113
- - name: 敬老の日
114
- regions: [jp]
115
- wday: 1
116
- week: 3
117
- - name: 振替休日
118
- regions: [jp]
119
- function: jp_respect_for_aged_holiday_substitute(year)
120
- - name: 国民の休日
121
- regions: [jp]
122
- year_ranges:
123
- - after: 2003
124
- function: jp_citizens_holiday(year)
125
- - name: 秋分の日
126
- regions: [jp]
127
- function: jp_national_culture_day(year)
128
- - name: 振替休日
129
- regions: [jp]
130
- function: jp_national_culture_day_substitute(year)
131
- 10:
132
- - name: 体育の日
133
- regions: [jp]
134
- wday: 1
135
- week: 2
136
- - name: 振替休日
137
- regions: [jp]
138
- function: jp_health_sports_day_substitute(year)
139
- 11:
140
- - name: 文化の日
141
- regions: [jp]
142
- mday: 3
143
- - name: 振替休日
144
- regions: [jp]
145
- mday: 3
146
- function: jp_substitute_holiday(year, month, day)
147
- - name: 勤労感謝の日
148
- regions: [jp]
149
- mday: 23
150
- - name: 振替休日
151
- regions: [jp]
152
- mday: 23
153
- function: jp_substitute_holiday(year, month, day)
154
- 12:
155
- - name: 天皇誕生日
156
- regions: [jp]
157
- mday: 23
158
- - name: 振替休日
159
- regions: [jp]
160
- mday: 23
161
- function: jp_substitute_holiday(year, month, day)
162
-
163
- methods:
164
- jp_health_sports_day_substitute:
165
- arguments: year
166
- source: |
167
- Holidays::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))
168
- jp_vernal_equinox_day:
169
- arguments: year
170
- source: |
171
- day =
172
- case year
173
- when 1851..1899
174
- 19.8277
175
- when 1900..1979
176
- 20.8357
177
- when 1980..2099
178
- 20.8431
179
- when 2100..2150
180
- 21.8510
181
- else
182
- raise IndexError.new("Out of range")
183
- end
184
- day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
185
- day = day.floor
186
- Date.civil(year, 3, day)
187
- jp_vernal_equinox_day_substitute:
188
- arguments: year
189
- source: |
190
- date = Holidays::Factory::Definition.custom_methods_repository.find("jp_vernal_equinox_day(year)").call(year)
191
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday)
192
- jp_marine_day_substitute:
193
- arguments: year
194
- source: |
195
- Holidays::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))
196
- jp_national_culture_day:
197
- arguments: year
198
- source: |
199
- day =
200
- case year
201
- when 1851..1899
202
- 22.2588
203
- when 1900..1979
204
- 23.2588
205
- when 1980..2099
206
- 23.2488
207
- when 2100..2150
208
- 24.2488
209
- else
210
- raise IndexError.new("Out of range")
211
- end
212
- day += 0.242194 * (year - 1980) - ((year - 1980)/4).floor
213
- day = day.floor
214
- Date.civil(year, 9, day)
215
- jp_national_culture_day_substitute:
216
- arguments: year
217
- source: |
218
- date = Holidays::Factory::Definition.custom_methods_repository.find("jp_national_culture_day(year)").call(year)
219
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday)
220
- jp_citizens_holiday:
221
- arguments: year
222
- source: |
223
- ncd = Holidays::Factory::Definition.custom_methods_repository.find("jp_national_culture_day(year)").call(year)
224
- if ncd.wday == 3
225
- ncd - 1
226
- else
227
- nil
228
- end
229
- jp_mountain_holiday:
230
- arguments: year
231
- source: |
232
- Date.civil(year, 8, 11)
233
- jp_mountain_holiday_substitute:
234
- arguments: year
235
- source: |
236
- date = Holidays::Factory::Definition.custom_methods_repository.find("jp_mountain_holiday(year)").call(year)
237
- Holidays::Factory::Definition.custom_methods_repository.find("jp_substitute_holiday(year, month, day)").call(year, date.month, date.mday)
238
- jp_respect_for_aged_holiday_substitute:
239
- arguments: year
240
- source: |
241
- Holidays::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))
242
- jp_substitute_holiday:
243
- arguments: year, month, day
244
- source: |
245
- date = Date.civil(year, month, day)
246
- date.wday == 0 ? (Holidays::Factory::Definition.custom_methods_repository.find("jp_next_weekday(date)").call(date+1)) : nil
247
- jp_next_weekday:
248
- arguments: date
249
- source: |
250
- is_holiday = Holidays::JP.holidays_by_month[date.month].any? do |holiday|
251
- holiday[:mday] == date.day
252
- end
253
- date.wday == 0 || is_holiday ? (Holidays::Factory::Definition.custom_methods_repository.find("jp_next_weekday(date)").call(date+1)) : date
254
-
255
- tests: |
256
- {Date.civil(2008,1,1) => '元日',
257
- Date.civil(2010,1,11) => '成人の日',
258
- Date.civil(2008,2,11) => '建国記念日',
259
- Date.civil(2008,4,29) => '昭和の日',
260
- Date.civil(2008,5,3) => '憲法記念日',
261
- Date.civil(2008,5,5) => 'こどもの日',
262
- Date.civil(2010,7,19) => '海の日',
263
- Date.civil(2010,9,20) => '敬老の日',
264
- Date.civil(2010,10,11) => '体育の日',
265
- Date.civil(2008,11,3) => '文化の日',
266
- Date.civil(2008,11,23) => '勤労感謝の日',
267
- Date.civil(2008,12,23) => '天皇誕生日',
268
- Date.civil(2010,3,22) => '振替休日',
269
- Date.civil(2008,11,24) => '振替休日',
270
- Date.civil(2012,1,2) => '振替休日',
271
- Date.civil(2013,5,6) => '振替休日',
272
- Date.civil(2014,5,6) => '振替休日',
273
- Date.civil(2015,5,6) => '振替休日',
274
- Date.civil(2019,8,12) => '振替休日'
275
- }.each do |date, name|
276
- assert_equal name, (Holidays.on(date, :jp, :informal)[0] || {})[:name]
277
- end
278
-
279
- # vernal equinox day
280
- [Date.civil(2004,3,20), Date.civil(2005,3,20), Date.civil(2006,3,21),
281
- Date.civil(2007,3,21), Date.civil(2008,3,20), Date.civil(2009,3,20),
282
- Date.civil(2010,3,21)].each do |date|
283
- assert_equal '春分の日', Holidays.on(date, :jp)[0][:name]
284
- end
285
-
286
- # national culture day
287
- [Date.civil(2004,9,23), Date.civil(2005,9,23), Date.civil(2006,9,23),
288
- Date.civil(2007,9,23), Date.civil(2008,9,23), Date.civil(2009,9,23),
289
- Date.civil(2010,9,23), Date.civil(2011,9,23), Date.civil(2012,9,22),
290
- Date.civil(2013,9,23)].each do |date|
291
- assert_equal '秋分の日', Holidays.on(date, :jp)[0][:name]
292
- end
293
-
294
- # citizens holiday
295
- [Date.civil(2032,9,21), Date.civil(2049,9,21), Date.civil(2009,9,22),
296
- Date.civil(2015,9,22), Date.civil(2026,9,22)].each do |date|
297
- assert_equal '国民の休日', Holidays.on(date, :jp)[0][:name]
298
- end
299
-
300
- # marine day since 1996
301
- [Date.civil(1996, 7, 20), Date.civil(2002, 7, 20), Date.civil(2003, 7, 21),
302
- Date.civil(2004, 7, 19), Date.civil(2005, 7, 18), Date.civil(2006, 7, 17),
303
- Date.civil(2007, 7, 16), Date.civil(2009, 7, 20), Date.civil(2013, 7, 15),
304
- Date.civil(2014, 7, 21)].each do |date|
305
- assert_equal '海の日', Holidays.on(date, :jp)[0][:name]
306
- end
307
-
308
- # mountain holiday start since 2016
309
- [Date.civil(2016,8,11), Date.civil(2017,8,11),Date.civil(2018,8,11),
310
- Date.civil(2019,8,11), Date.civil(2020,8,11),Date.civil(2021,8,11),
311
- Date.civil(2022,8,11)].each do |date|
312
- assert_equal '山の日', Holidays.on(date, :jp)[0][:name]
313
- end
314
-
315
- # before 2016, there is no mountain holiday.
316
- assert_nil Holidays.on(Date.civil(2015,8,11), :jp)[0]
317
-
318
- # before 2003, there is no citizens holiday.
319
- # [note] citizens holiday requires that jp_national_culture_day is wednesday.
320
- # Before 2003, the closest past year that mathches above condition is 1998.
321
- assert_nil Holidays.on(Date.civil(1998,9,22), :jp)[0]
@@ -1,282 +0,0 @@
1
- # Republic of Korea holiday definitions for the Ruby Holiday gem.
2
- # Provided by Jonathan Pike
3
- #
4
- # Updated: 2016-09-23.
5
- # Sources:
6
- # - https://en.wikipedia.org/wiki/List_of_public_holidays_in_South_Korea
7
- # - http://www.hko.gov.hk/gts/time/conversion.htm (for Lunar Calendar Conversions)
8
-
9
- ---
10
- months:
11
- 0:
12
- - name: Korean New Year
13
- regions: [kr]
14
- function: kr_new_years(year)
15
- - name: Buddah's Birthday
16
- regions: [kr]
17
- function: kr_buddahs_birthday(year)
18
- - name: Korean Thanksgiving
19
- regions: [kr]
20
- function: kr_thanksgiving(year)
21
- 1:
22
- - name: New Year's Day
23
- regions: [kr]
24
- mday: 1
25
- 3:
26
- - name: Independence Movement Day
27
- regions: [kr]
28
- mday: 1
29
- 5:
30
- - name: Children's Day
31
- regions: [kr]
32
- mday: 5
33
- 6:
34
- - name: Memorial Day
35
- regions: [kr]
36
- mday: 6
37
- 7:
38
- - name: Constitution Day
39
- regions: [kr]
40
- mday: 17
41
- type: informal
42
- 8:
43
- - name: Liberation Day
44
- regions: [kr]
45
- mday: 15
46
- 10:
47
- - name: National Foundation Day
48
- regions: [kr]
49
- mday: 3
50
- - name: Hangul Day
51
- regions: [kr]
52
- mday: 9
53
- 12:
54
- - name: Christmas Day
55
- regions: [kr]
56
- mday: 25
57
-
58
- methods:
59
- kr_new_years:
60
- arguments: year
61
- source: |
62
- month_day = case year
63
- when 1941
64
- [1, 17]
65
- when 1966
66
- [1, 21]
67
- when 1909, 1947, 2004, 2023, 2042
68
- [1, 22]
69
- when 1917, 1928, 1974, 1993, 2012, 2031, 2015
70
- [1, 23]
71
- when 1925, 1936, 1955, 2001, 2039
72
- [1, 24]
73
- when 1906, 1944, 1963, 1982, 2020
74
- [1, 25]
75
- when 1914, 1933, 2009, 2028, 2047
76
- [1, 26]
77
- when 1952, 1971, 1990
78
- [1, 27]
79
- when 1922, 1960, 1979, 1998, 2017, 2036
80
- [1, 28]
81
- when 1903, 1949, 1987, 2006, 2025
82
- [1, 29]
83
- when 1911, 1930, 1968, 2044
84
- [1, 30]
85
- when 1938, 1957, 1976, 1995, 2014, 2033
86
- [1, 31]
87
- when 1919, 1948, 2003, 2022, 2041
88
- [2, 1]
89
- when 1908, 1927, 1946, 1965, 1984, 2049
90
- [2, 2]
91
- when 1916, 1954, 1973, 2011, 2030
92
- [2, 3]
93
- when 1905, 1935, 1992, 2038
94
- [2, 4]
95
- when 1924, 1943, 1962, 1981, 1989, 2000, 2019
96
- [2, 5]
97
- when 1913, 1932, 1951, 1970, 2027, 2046
98
- [2, 6]
99
- when 1978, 1997, 2008
100
- [2, 7]
101
- when 1902, 1921, 1940, 1959, 2016, 2035
102
- [2, 8]
103
- when 1967, 1986, 2005
104
- [2, 9]
105
- when 1910, 1929, 1994, 2013, 2024, 2043
106
- [2, 10]
107
- when 1918, 1937, 1975, 2032
108
- [2, 11]
109
- when 1956, 2002, 2021, 2040
110
- [2, 12]
111
- when 1907, 1926, 1945, 1964, 1983, 2029
112
- [2, 13]
113
- when 1915, 1934, 1953, 2010, 2048
114
- [2, 14]
115
- when 1942, 1961, 1972, 1991, 2037
116
- [2, 15]
117
- when 1904, 1923, 1980, 1999, 2018
118
- [2, 16]
119
- when 1931, 1950, 1969, 1988, 2026, 2045
120
- [2, 17]
121
- when 1912, 1958, 1977, 2007
122
- [2, 18]
123
- when 1901, 1939, 1996, 2015, 2034
124
- [2, 19]
125
- when 1920, 1985
126
- [2, 20]
127
- end
128
- Date.civil(year, month_day[0], month_day[1])
129
-
130
- kr_buddahs_birthday:
131
- arguments: year
132
- source: |
133
- month_day = case year
134
- when 2039
135
- [4, 30]
136
- when 1952, 1963, 1982
137
- [5, 1]
138
- when 1914, 1933, 1971, 1990, 2009, 2028, 2047
139
- [5, 2]
140
- when 1941, 1960, 1979, 1998, 2017, 2036
141
- [5, 3]
142
- when 1901, 1903, 1922, 1968
143
- [5, 4]
144
- when 1949, 1987, 2006, 2012, 2025, 2044
145
- [5, 5]
146
- when 1911, 1930, 1976, 2014, 2033
147
- [5, 6]
148
- when 1908, 1919, 1957, 1995, 2041
149
- [5, 7]
150
- when 1927, 1946, 1965, 1984, 2003, 2022
151
- [5, 8]
152
- when 1916, 2030, 2049
153
- [5, 9]
154
- when 1935, 1954, 1973, 1992, 2011
155
- [5, 10]
156
- when 1905, 1924, 1943, 1962, 1981, 2000, 2038
157
- [5, 11]
158
- when 1970, 1989, 2008, 2019
159
- [5, 12]
160
- when 1913, 1932, 1951, 2027
161
- [5, 13]
162
- when 1938, 1940, 1978, 1997, 2016
163
- [5, 14]
164
- when 1902, 1921, 1959, 2005, 2024, 2035
165
- [5, 15]
166
- when 1910, 1929, 1948, 1967, 1986, 2032, 2043
167
- [5, 16]
168
- when 1918, 1937, 1956, 2013
169
- [5, 17]
170
- when 1975, 1994, 2040
171
- [5, 18]
172
- when 1907, 1926, 1945, 1964, 2002, 2021
173
- [5, 19]
174
- when 1934, 1953, 1972, 1983, 2029, 2046, 2048
175
- [5, 20]
176
- when 1915, 1980, 1991, 2010
177
- [5, 21]
178
- when 1904, 1942, 1961, 1999, 2018, 2037
179
- [5, 22]
180
- when 1923, 1969, 1988
181
- [5, 23]
182
- when 1912, 1931, 1950, 1996, 2007, 2026, 2045
183
- [5, 24]
184
- when 1920, 1977, 2015, 2034
185
- [5, 25]
186
- when 1909, 1928, 1939, 1947, 1958, 2004, 2023, 2042
187
- [5, 26]
188
- when 1966, 1985
189
- [5, 27]
190
- when 1917, 1936, 1993, 2031, 2050
191
- [5, 28]
192
- when 1925, 1944, 1955, 1974
193
- [5, 29]
194
- when 1906, 2001, 2020
195
- [5, 30]
196
- end
197
- Date.civil(year, month_day[0], month_day[1])
198
-
199
- kr_thanksgiving:
200
- arguments: year
201
- source: |
202
- month_day = case year
203
- when 1905, 1924, 1973
204
- [9, 8]
205
- when 1913, 1970, 1989, 2000, 2008, 2019, 2038
206
- [9, 10]
207
- when 1902, 1932, 1938, 1981, 2027
208
- [9, 11]
209
- when 1929, 1940, 1951, 1978, 2016, 2035
210
- [9, 12]
211
- when 1921, 1948, 1959, 1997, 2024
212
- [9, 13]
213
- when 1910, 1975, 2005
214
- [9, 14]
215
- when 1918, 1937, 1945, 1967, 1986, 2032, 2043
216
- [9, 15]
217
- when 1907, 1964, 1994, 2013, 2040
218
- [9, 16]
219
- when 1926, 1956, 1962, 1972, 2046, 2048
220
- [9, 17]
221
- when 1934, 1953, 2002, 2021
222
- [9, 18]
223
- when 1904, 1915, 1980, 2010, 2029
224
- [9, 19]
225
- when 1923, 1969, 1983, 1991, 1999
226
- [9, 20]
227
- when 1942, 1961, 1988, 2037
228
- [9, 21]
229
- when 1912, 1977 ,1996, 2007, 2015, 2018, 2026
230
- [9, 22]
231
- when 1931, 1939, 1950
232
- [9, 23]
233
- when 1909, 1920, 1947, 1958, 2034, 2045
234
- [9, 24]
235
- when 1917, 1928, 1936, 1966, 1985, 2050
236
- [9, 25]
237
- when 2001, 2004, 2023, 2042
238
- [9, 26]
239
- when 1906, 1925, 1944, 1955, 1974, 1993, 2031
240
- [9, 27]
241
- when 1914, 1963, 1971, 2009
242
- [9, 28]
243
- when 1933, 1952, 1982, 2020
244
- [9, 29]
245
- when 1941, 1979, 1990, 2017, 2028, 2036, 2047
246
- [9, 30]
247
- when 1901, 1960, 1968, 1987, 2006
248
- [10, 1]
249
- when 1903, 1922, 1949, 1998
250
- [10, 2]
251
- when 1911, 1976, 2014, 2033, 2044
252
- [10, 3]
253
- when 1927, 1930, 2012, 2025, 2041
254
- [10, 4]
255
- when 1908, 1919, 1935, 1946, 1957, 1995, 2039
256
- [10, 5]
257
- when 1916, 1965, 2003, 2022, 2030, 2049
258
- [10, 6]
259
- when 1984
260
- [10, 7]
261
- when 1943, 1954, 1992
262
- [10, 8]
263
- when 2011
264
- [10, 9]
265
- end
266
- Date.civil(year, month_day[0], month_day[1])
267
-
268
- tests: |
269
- {Date.civil(2016,2,8) => "Korean New Year",
270
- Date.civil(2016,5,14) => "Buddah\'s Birthday",
271
- Date.civil(2016,9,12) => "Korean Thanksgiving",
272
- Date.civil(2016,1,1) => "New Year\'s Day",
273
- Date.civil(2016,3,1) => "Independence Movement Day",
274
- Date.civil(2016,5,5) => "Children\'s Day",
275
- Date.civil(2016,6,6) => "Memorial Day",
276
- Date.civil(2016,7,17) => "Constitution Day",
277
- Date.civil(2016,8,15) => "Liberation Day",
278
- Date.civil(2016,10,3) => "National Foundation Day",
279
- Date.civil(2016,10,9) => "Hangul Day",
280
- Date.civil(2016,12,25) => "Christmas Day"}.each do |date, name|
281
- assert_equal name, (Holidays.on(date, :kr, :informal)[0] || {})[:name]
282
- end