revised_holidays 9.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.
- checksums.yaml +7 -0
- data/.github/workflows/ruby.yml +25 -0
- data/CHANGELOG.md +446 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +3 -0
- data/LICENSE +21 -0
- data/Makefile +45 -0
- data/README.md +337 -0
- data/Rakefile +109 -0
- data/bin/console +7 -0
- data/bin/setup +6 -0
- data/definitions/.github/workflows/ruby.yml +25 -0
- data/definitions/.gitignore +5 -0
- data/definitions/CHANGELOG.md +352 -0
- data/definitions/Gemfile +6 -0
- data/definitions/LICENSE +21 -0
- data/definitions/METHODS.yml +26 -0
- data/definitions/Makefile +9 -0
- data/definitions/README.md +22 -0
- data/definitions/ar.yaml +268 -0
- data/definitions/at.yaml +116 -0
- data/definitions/au.yaml +907 -0
- data/definitions/be_fr.yaml +153 -0
- data/definitions/be_nl.yaml +153 -0
- data/definitions/bg.yaml +186 -0
- data/definitions/br.yaml +178 -0
- data/definitions/ca.yaml +969 -0
- data/definitions/ch.yaml +277 -0
- data/definitions/cl.yaml +294 -0
- data/definitions/co.yaml +437 -0
- data/definitions/cr.yaml +100 -0
- data/definitions/cz.yaml +137 -0
- data/definitions/de.yaml +401 -0
- data/definitions/dk.yaml +220 -0
- data/definitions/doc/CONTRIBUTING.md +44 -0
- data/definitions/doc/MAINTAINERS.md +39 -0
- data/definitions/doc/SYNTAX.md +435 -0
- data/definitions/doc/architecture/README.md +15 -0
- data/definitions/doc/architecture/adr-001.md +86 -0
- data/definitions/doc/architecture/adr-002.md +64 -0
- data/definitions/ecbtarget.yaml +74 -0
- data/definitions/ee.yaml +123 -0
- data/definitions/es.yaml +495 -0
- data/definitions/federalreserve.yaml +389 -0
- data/definitions/federalreservebanks.yaml +821 -0
- data/definitions/fedex.yaml +102 -0
- data/definitions/fi.yaml +234 -0
- data/definitions/fr.yaml +157 -0
- data/definitions/gb.yaml +565 -0
- data/definitions/ge.yaml +158 -0
- data/definitions/gr.yaml +158 -0
- data/definitions/hk.yaml +287 -0
- data/definitions/hr.yaml +171 -0
- data/definitions/hu.yaml +156 -0
- data/definitions/ie.yaml +172 -0
- data/definitions/index.yaml +80 -0
- data/definitions/is.yaml +247 -0
- data/definitions/it.yaml +246 -0
- data/definitions/jp.yaml +761 -0
- data/definitions/ke.yaml +107 -0
- data/definitions/kr.yaml +166 -0
- data/definitions/kz.yaml +128 -0
- data/definitions/li.yaml +154 -0
- data/definitions/lib/validation/custom_method_validator.rb +38 -0
- data/definitions/lib/validation/definition_validator.rb +35 -0
- data/definitions/lib/validation/error.rb +11 -0
- data/definitions/lib/validation/month_validator.rb +58 -0
- data/definitions/lib/validation/run.rb +66 -0
- data/definitions/lib/validation/test_validator.rb +83 -0
- data/definitions/lt.yaml +198 -0
- data/definitions/lu.yaml +123 -0
- data/definitions/lv.yaml +229 -0
- data/definitions/ma.yaml +96 -0
- data/definitions/mt_en.yaml +131 -0
- data/definitions/mt_mt.yaml +131 -0
- data/definitions/mx.yaml +160 -0
- data/definitions/my.yaml +79 -0
- data/definitions/nerc.yaml +94 -0
- data/definitions/ng.yaml +97 -0
- data/definitions/nl.yaml +127 -0
- data/definitions/no.yaml +169 -0
- data/definitions/northamericainformal.yaml +105 -0
- data/definitions/nyse.yaml +137 -0
- data/definitions/nz.yaml +346 -0
- data/definitions/pe.yaml +208 -0
- data/definitions/ph.yaml +130 -0
- data/definitions/pl.yaml +796 -0
- data/definitions/pt.yaml +187 -0
- data/definitions/ro.yaml +240 -0
- data/definitions/rs_cyrl.yaml +129 -0
- data/definitions/rs_la.yaml +129 -0
- data/definitions/ru.yaml +108 -0
- data/definitions/se.yaml +238 -0
- data/definitions/sg.yaml +89 -0
- data/definitions/si.yaml +162 -0
- data/definitions/sk.yaml +154 -0
- data/definitions/spec/coverage_report.rb +7 -0
- data/definitions/spec/data/invalid/months/malformed/bad.yaml +15 -0
- data/definitions/spec/data/invalid/months/missing/no_months.yaml +9 -0
- data/definitions/spec/data/valid/simple.yaml +15 -0
- data/definitions/spec/spec_helper.rb +7 -0
- data/definitions/spec/validation/custom_method_validator_spec.rb +60 -0
- data/definitions/spec/validation/definition_validator_spec.rb +43 -0
- data/definitions/spec/validation/month_validator_spec.rb +175 -0
- data/definitions/spec/validation/test_validator_spec.rb +169 -0
- data/definitions/th.yaml +111 -0
- data/definitions/tn.yaml +83 -0
- data/definitions/tr.yaml +174 -0
- data/definitions/ua.yaml +161 -0
- data/definitions/unitednations.yaml +189 -0
- data/definitions/ups.yaml +102 -0
- data/definitions/us.yaml +965 -0
- data/definitions/ve.yaml +118 -0
- data/definitions/vi.yaml +54 -0
- data/definitions/za.yaml +139 -0
- data/doc/CONTRIBUTING.md +72 -0
- data/doc/MAINTAINERS.md +81 -0
- data/doc/REFERENCES +19 -0
- data/lib/generated_definitions/MANIFEST +83 -0
- data/lib/generated_definitions/REGIONS.rb +6 -0
- data/lib/generated_definitions/ar.rb +60 -0
- data/lib/generated_definitions/at.rb +37 -0
- data/lib/generated_definitions/au.rb +177 -0
- data/lib/generated_definitions/be.rb +42 -0
- data/lib/generated_definitions/be_fr.rb +36 -0
- data/lib/generated_definitions/be_nl.rb +36 -0
- data/lib/generated_definitions/bg.rb +53 -0
- data/lib/generated_definitions/br.rb +37 -0
- data/lib/generated_definitions/ca.rb +88 -0
- data/lib/generated_definitions/ch.rb +95 -0
- data/lib/generated_definitions/cl.rb +71 -0
- data/lib/generated_definitions/co.rb +121 -0
- data/lib/generated_definitions/cr.rb +35 -0
- data/lib/generated_definitions/cz.rb +37 -0
- data/lib/generated_definitions/de.rb +65 -0
- data/lib/generated_definitions/dk.rb +48 -0
- data/lib/generated_definitions/ecbtarget.rb +30 -0
- data/lib/generated_definitions/ee.rb +36 -0
- data/lib/generated_definitions/el.rb +38 -0
- data/lib/generated_definitions/es.rb +56 -0
- data/lib/generated_definitions/europe.rb +638 -0
- data/lib/generated_definitions/federalreserve.rb +35 -0
- data/lib/generated_definitions/federalreservebanks.rb +35 -0
- data/lib/generated_definitions/fedex.rb +36 -0
- data/lib/generated_definitions/fi.rb +61 -0
- data/lib/generated_definitions/fr.rb +39 -0
- data/lib/generated_definitions/gb.rb +51 -0
- data/lib/generated_definitions/ge.rb +41 -0
- data/lib/generated_definitions/gr.rb +38 -0
- data/lib/generated_definitions/hk.rb +106 -0
- data/lib/generated_definitions/hr.rb +40 -0
- data/lib/generated_definitions/hu.rb +35 -0
- data/lib/generated_definitions/ie.rb +33 -0
- data/lib/generated_definitions/is.rb +60 -0
- data/lib/generated_definitions/it.rb +45 -0
- data/lib/generated_definitions/jp.rb +166 -0
- data/lib/generated_definitions/ke.rb +34 -0
- data/lib/generated_definitions/kr.rb +40 -0
- data/lib/generated_definitions/kz.rb +38 -0
- data/lib/generated_definitions/li.rb +44 -0
- data/lib/generated_definitions/lt.rb +38 -0
- data/lib/generated_definitions/lu.rb +35 -0
- data/lib/generated_definitions/lv.rb +56 -0
- data/lib/generated_definitions/ma.rb +33 -0
- data/lib/generated_definitions/mt_en.rb +38 -0
- data/lib/generated_definitions/mt_mt.rb +38 -0
- data/lib/generated_definitions/mx.rb +54 -0
- data/lib/generated_definitions/my.rb +30 -0
- data/lib/generated_definitions/nerc.rb +30 -0
- data/lib/generated_definitions/ng.rb +33 -0
- data/lib/generated_definitions/nl.rb +37 -0
- data/lib/generated_definitions/no.rb +40 -0
- data/lib/generated_definitions/northamerica.rb +229 -0
- data/lib/generated_definitions/nyse.rb +34 -0
- data/lib/generated_definitions/nz.rb +105 -0
- data/lib/generated_definitions/pe.rb +43 -0
- data/lib/generated_definitions/ph.rb +50 -0
- data/lib/generated_definitions/pl.rb +73 -0
- data/lib/generated_definitions/pt.rb +40 -0
- data/lib/generated_definitions/ro.rb +39 -0
- data/lib/generated_definitions/rs_cyrl.rb +39 -0
- data/lib/generated_definitions/rs_la.rb +39 -0
- data/lib/generated_definitions/ru.rb +37 -0
- data/lib/generated_definitions/scandinavia.rb +166 -0
- data/lib/generated_definitions/se.rb +53 -0
- data/lib/generated_definitions/sg.rb +31 -0
- data/lib/generated_definitions/si.rb +39 -0
- data/lib/generated_definitions/sk.rb +39 -0
- data/lib/generated_definitions/southamerica.rb +248 -0
- data/lib/generated_definitions/th.rb +36 -0
- data/lib/generated_definitions/tn.rb +32 -0
- data/lib/generated_definitions/tr.rb +64 -0
- data/lib/generated_definitions/ua.rb +37 -0
- data/lib/generated_definitions/unitednations.rb +81 -0
- data/lib/generated_definitions/ups.rb +36 -0
- data/lib/generated_definitions/us.rb +153 -0
- data/lib/generated_definitions/ve.rb +36 -0
- data/lib/generated_definitions/vi.rb +29 -0
- data/lib/generated_definitions/za.rb +36 -0
- data/lib/holidays/core_extensions/date.rb +57 -0
- data/lib/holidays/core_extensions/time.rb +23 -0
- data/lib/holidays/date_calculator/day_of_month.rb +68 -0
- data/lib/holidays/date_calculator/easter.rb +91 -0
- data/lib/holidays/date_calculator/lunar_date.rb +371 -0
- data/lib/holidays/date_calculator/weekend_modifier.rb +80 -0
- data/lib/holidays/definition/context/function_processor.rb +91 -0
- data/lib/holidays/definition/context/generator.rb +209 -0
- data/lib/holidays/definition/context/load.rb +29 -0
- data/lib/holidays/definition/context/merger.rb +22 -0
- data/lib/holidays/definition/decorator/custom_method_proc.rb +28 -0
- data/lib/holidays/definition/decorator/custom_method_source.rb +30 -0
- data/lib/holidays/definition/decorator/test.rb +37 -0
- data/lib/holidays/definition/entity/custom_method.rb +11 -0
- data/lib/holidays/definition/entity/test.rb +11 -0
- data/lib/holidays/definition/generator/module.rb +54 -0
- data/lib/holidays/definition/generator/regions.rb +55 -0
- data/lib/holidays/definition/generator/test.rb +51 -0
- data/lib/holidays/definition/parser/custom_method.rb +67 -0
- data/lib/holidays/definition/parser/test.rb +86 -0
- data/lib/holidays/definition/repository/cache.rb +47 -0
- data/lib/holidays/definition/repository/custom_methods.rb +27 -0
- data/lib/holidays/definition/repository/holidays_by_month.rb +57 -0
- data/lib/holidays/definition/repository/proc_result_cache.rb +51 -0
- data/lib/holidays/definition/repository/regions.rb +46 -0
- data/lib/holidays/definition/validator/custom_method.rb +31 -0
- data/lib/holidays/definition/validator/region.rb +36 -0
- data/lib/holidays/definition/validator/test.rb +71 -0
- data/lib/holidays/errors.rb +11 -0
- data/lib/holidays/factory/date_calculator.rb +42 -0
- data/lib/holidays/factory/definition.rb +143 -0
- data/lib/holidays/factory/finder.rb +70 -0
- data/lib/holidays/finder/context/between.rb +45 -0
- data/lib/holidays/finder/context/dates_driver_builder.rb +64 -0
- data/lib/holidays/finder/context/next_holiday.rb +57 -0
- data/lib/holidays/finder/context/parse_options.rb +104 -0
- data/lib/holidays/finder/context/search.rb +111 -0
- data/lib/holidays/finder/context/year_holiday.rb +57 -0
- data/lib/holidays/finder/rules/in_region.rb +31 -0
- data/lib/holidays/finder/rules/year_range.rb +58 -0
- data/lib/holidays/load_all_definitions.rb +56 -0
- data/lib/holidays/version.rb +3 -0
- data/lib/holidays.rb +130 -0
- data/lib/revised_holidays.rb +1 -0
- data/revised_holidays.gemspec +31 -0
- data/test/coverage_report.rb +26 -0
- data/test/data/test_custom_govt_holiday_defs.yaml +5 -0
- data/test/data/test_custom_informal_holidays_defs.yaml +11 -0
- data/test/data/test_custom_year_range_holiday_defs.yaml +31 -0
- data/test/data/test_invalid_region.rb +15 -0
- data/test/data/test_multiple_custom_holiday_defs.yaml +12 -0
- data/test/data/test_multiple_regions_with_conflicts_region_1.yaml +38 -0
- data/test/data/test_multiple_regions_with_conflicts_region_2.yaml +38 -0
- data/test/data/test_region.rb +15 -0
- data/test/data/test_single_custom_holiday_defs.yaml +12 -0
- data/test/data/test_single_custom_holiday_with_custom_procs.yaml +28 -0
- data/test/defs/test_defs_ar.rb +69 -0
- data/test/defs/test_defs_at.rb +31 -0
- data/test/defs/test_defs_au.rb +233 -0
- data/test/defs/test_defs_be_fr.rb +45 -0
- data/test/defs/test_defs_be_nl.rb +45 -0
- data/test/defs/test_defs_bg.rb +41 -0
- data/test/defs/test_defs_br.rb +49 -0
- data/test/defs/test_defs_ca.rb +289 -0
- data/test/defs/test_defs_ch.rb +51 -0
- data/test/defs/test_defs_cl.rb +69 -0
- data/test/defs/test_defs_co.rb +113 -0
- data/test/defs/test_defs_cr.rb +29 -0
- data/test/defs/test_defs_cz.rb +37 -0
- data/test/defs/test_defs_de.rb +89 -0
- data/test/defs/test_defs_dk.rb +47 -0
- data/test/defs/test_defs_ecbtarget.rb +27 -0
- data/test/defs/test_defs_ee.rb +41 -0
- data/test/defs/test_defs_es.rb +137 -0
- data/test/defs/test_defs_europe.rb +1522 -0
- data/test/defs/test_defs_fed_ex.rb +24 -0
- data/test/defs/test_defs_federalreserve.rb +119 -0
- data/test/defs/test_defs_federalreservebanks.rb +251 -0
- data/test/defs/test_defs_fedex.rb +31 -0
- data/test/defs/test_defs_fi.rb +59 -0
- data/test/defs/test_defs_fr.rb +43 -0
- data/test/defs/test_defs_gb.rb +159 -0
- data/test/defs/test_defs_ge.rb +53 -0
- data/test/defs/test_defs_gr.rb +41 -0
- data/test/defs/test_defs_hk.rb +59 -0
- data/test/defs/test_defs_hr.rb +45 -0
- data/test/defs/test_defs_hu.rb +47 -0
- data/test/defs/test_defs_ie.rb +53 -0
- data/test/defs/test_defs_is.rb +51 -0
- data/test/defs/test_defs_it.rb +55 -0
- data/test/defs/test_defs_jp.rb +159 -0
- data/test/defs/test_defs_ke.rb +31 -0
- data/test/defs/test_defs_kr.rb +37 -0
- data/test/defs/test_defs_kz.rb +39 -0
- data/test/defs/test_defs_li.rb +35 -0
- data/test/defs/test_defs_lt.rb +65 -0
- data/test/defs/test_defs_lu.rb +35 -0
- data/test/defs/test_defs_lv.rb +98 -0
- data/test/defs/test_defs_ma.rb +29 -0
- data/test/defs/test_defs_mt_en.rb +41 -0
- data/test/defs/test_defs_mt_mt.rb +41 -0
- data/test/defs/test_defs_mx.rb +49 -0
- data/test/defs/test_defs_my.rb +23 -0
- data/test/defs/test_defs_nerc.rb +29 -0
- data/test/defs/test_defs_ng.rb +29 -0
- data/test/defs/test_defs_nl.rb +33 -0
- data/test/defs/test_defs_no.rb +43 -0
- data/test/defs/test_defs_northamerica.rb +667 -0
- data/test/defs/test_defs_nyse.rb +46 -0
- data/test/defs/test_defs_nz.rb +67 -0
- data/test/defs/test_defs_pe.rb +47 -0
- data/test/defs/test_defs_ph.rb +29 -0
- data/test/defs/test_defs_pl.rb +229 -0
- data/test/defs/test_defs_pt.rb +47 -0
- data/test/defs/test_defs_ro.rb +65 -0
- data/test/defs/test_defs_rs_cyrl.rb +46 -0
- data/test/defs/test_defs_rs_la.rb +46 -0
- data/test/defs/test_defs_ru.rb +34 -0
- data/test/defs/test_defs_scandinavia.rb +215 -0
- data/test/defs/test_defs_se.rb +59 -0
- data/test/defs/test_defs_sg.rb +25 -0
- data/test/defs/test_defs_si.rb +105 -0
- data/test/defs/test_defs_sk.rb +41 -0
- data/test/defs/test_defs_southamerica.rb +327 -0
- data/test/defs/test_defs_th.rb +33 -0
- data/test/defs/test_defs_tn.rb +27 -0
- data/test/defs/test_defs_tr.rb +60 -0
- data/test/defs/test_defs_ua.rb +41 -0
- data/test/defs/test_defs_unitednations.rb +11 -0
- data/test/defs/test_defs_ups.rb +31 -0
- data/test/defs/test_defs_us.rb +387 -0
- data/test/defs/test_defs_ve.rb +35 -0
- data/test/defs/test_defs_vi.rb +22 -0
- data/test/defs/test_defs_za.rb +35 -0
- data/test/holidays/core_extensions/test_date.rb +122 -0
- data/test/holidays/core_extensions/test_date_time.rb +60 -0
- data/test/holidays/date_calculator/test_day_of_month.rb +27 -0
- data/test/holidays/date_calculator/test_easter_gregorian.rb +30 -0
- data/test/holidays/date_calculator/test_easter_julian.rb +36 -0
- data/test/holidays/date_calculator/test_lunar_date.rb +89 -0
- data/test/holidays/date_calculator/test_weekend_modifier.rb +54 -0
- data/test/holidays/definition/context/test_function_processor.rb +199 -0
- data/test/holidays/definition/context/test_generator.rb +226 -0
- data/test/holidays/definition/context/test_load.rb +37 -0
- data/test/holidays/definition/context/test_merger.rb +25 -0
- data/test/holidays/definition/decorator/test_custom_method_proc.rb +113 -0
- data/test/holidays/definition/decorator/test_custom_method_source.rb +96 -0
- data/test/holidays/definition/decorator/test_test.rb +123 -0
- data/test/holidays/definition/generator/test_module.rb +268 -0
- data/test/holidays/definition/generator/test_regions.rb +97 -0
- data/test/holidays/definition/generator/test_test.rb +113 -0
- data/test/holidays/definition/parser/test_custom_method.rb +79 -0
- data/test/holidays/definition/parser/test_test.rb +142 -0
- data/test/holidays/definition/repository/test_cache.rb +123 -0
- data/test/holidays/definition/repository/test_custom_methods.rb +43 -0
- data/test/holidays/definition/repository/test_holidays_by_month.rb +275 -0
- data/test/holidays/definition/repository/test_proc_result_cache.rb +91 -0
- data/test/holidays/definition/repository/test_regions.rb +104 -0
- data/test/holidays/definition/validator/test_custom_method.rb +94 -0
- data/test/holidays/definition/validator/test_region.rb +54 -0
- data/test/holidays/definition/validator/test_test.rb +60 -0
- data/test/holidays/finder/context/test_between.rb +172 -0
- data/test/holidays/finder/context/test_dates_driver_builder.rb +91 -0
- data/test/holidays/finder/context/test_next_holiday.rb +156 -0
- data/test/holidays/finder/context/test_parse_options.rb +141 -0
- data/test/holidays/finder/context/test_search.rb +232 -0
- data/test/holidays/finder/context/test_year_holiday.rb +202 -0
- data/test/holidays/finder/rules/test_in_region.rb +42 -0
- data/test/holidays/finder/rules/test_year_range.rb +166 -0
- data/test/integration/README.md +9 -0
- data/test/integration/test_all_regions.rb +49 -0
- data/test/integration/test_any_holidays_during_work_week.rb +90 -0
- data/test/integration/test_available_regions.rb +23 -0
- data/test/integration/test_custom_holidays.rb +41 -0
- data/test/integration/test_custom_informal_holidays.rb +15 -0
- data/test/integration/test_custom_year_range_holidays.rb +35 -0
- data/test/integration/test_holidays.rb +243 -0
- data/test/integration/test_holidays_between.rb +87 -0
- data/test/integration/test_multiple_regions.rb +71 -0
- data/test/integration/test_multiple_regions_with_conflict.rb +29 -0
- data/test/integration/test_nonstandard_regions.rb +25 -0
- data/test/test_helper.rb +37 -0
- metadata +649 -0
data/definitions/de.yaml
ADDED
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
# German holiday definitions for the Ruby Holiday gem.
|
|
2
|
+
#
|
|
3
|
+
# Updated: 2019-02-10
|
|
4
|
+
#
|
|
5
|
+
# Changes 2016-11-27:
|
|
6
|
+
# - Change de_sn_aux, de_th_aux to de_sn_sorbian (because it only is celebrated in Sorbian regions in Sachsen) and de_th_eichsfeld, to reflect region of Eichsfeld
|
|
7
|
+
# - Change de_sn_aux to de_by_augsburg to reflect only City of Augsburg
|
|
8
|
+
#
|
|
9
|
+
# Changes 2017-06-08:
|
|
10
|
+
# - Add Berlin, Bremen, Hamburg, Niedersachsen, Schleswig-Holstein
|
|
11
|
+
# - Change de_th_eichsfeld to de_th_cath because it affects the catholic communities Eichsfeld, Unstrut-Hainich-Kreis and Wartburgkreis
|
|
12
|
+
# - Merge Fronleichnam entry
|
|
13
|
+
# - Add de_by_cath for catholic communities in Bavaria; Maria Himmelfahrt is not a Bavaria-wide holiday
|
|
14
|
+
# - Mariä Himmelfahrt is celebrated in the community of Augsburg (de_by_augsburg)
|
|
15
|
+
# - Enhance tests
|
|
16
|
+
#
|
|
17
|
+
# Changes 2017-09-25:
|
|
18
|
+
# - Correct definition for Reformation Day
|
|
19
|
+
#
|
|
20
|
+
# Changes 2018-09-10:
|
|
21
|
+
# - Reformation Day has been added as a new holiday in Bremen, Hamburg, Lower Saxony and Schleswig-Holstein, starting in 2018.
|
|
22
|
+
#
|
|
23
|
+
# Change 2019-02-10:
|
|
24
|
+
# - Changing usage of 'year_ranges.after' to 'year_ranges.from', see https://github.com/holidays/definitions/issues/117
|
|
25
|
+
#
|
|
26
|
+
# Change 2023-04-17:
|
|
27
|
+
# - Historical data for Tag der Deutschen Einheit
|
|
28
|
+
#
|
|
29
|
+
# Sources:
|
|
30
|
+
# - http://en.wikipedia.org/wiki/Holidays_in_Germany
|
|
31
|
+
# - http://www.timeanddate.com/calendar/index.html?country=8
|
|
32
|
+
# - http://www.germany.info/relaunch/welcome/travel/holidays.html
|
|
33
|
+
# - https://www.statistik.bayern.de/statistik/bevoelkerungsstand/00141.php
|
|
34
|
+
# - http://www.thueringen.de/mam/th3/tim/verwaltungsrecht/fronleichnam_gemeindeschluesselzahlen.pdf
|
|
35
|
+
---
|
|
36
|
+
months:
|
|
37
|
+
0:
|
|
38
|
+
- name: Karfreitag
|
|
39
|
+
regions: [de]
|
|
40
|
+
function: easter(year)
|
|
41
|
+
function_modifier: -2
|
|
42
|
+
- name: Ostersonntag
|
|
43
|
+
regions: [de]
|
|
44
|
+
function: easter(year)
|
|
45
|
+
type: informal
|
|
46
|
+
- name: Ostermontag
|
|
47
|
+
regions: [de]
|
|
48
|
+
function: easter(year)
|
|
49
|
+
function_modifier: 1
|
|
50
|
+
- name: Christi Himmelfahrt
|
|
51
|
+
regions: [de]
|
|
52
|
+
function: easter(year)
|
|
53
|
+
function_modifier: 39
|
|
54
|
+
- name: Pfingstsonntag
|
|
55
|
+
regions: [de]
|
|
56
|
+
function: easter(year)
|
|
57
|
+
function_modifier: 49
|
|
58
|
+
type: informal
|
|
59
|
+
- name: Pfingstmontag
|
|
60
|
+
regions: [de]
|
|
61
|
+
function: easter(year)
|
|
62
|
+
function_modifier: 50
|
|
63
|
+
- name: Fronleichnam
|
|
64
|
+
regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn_sorbian, de_th_cath]
|
|
65
|
+
function: easter(year)
|
|
66
|
+
function_modifier: 60
|
|
67
|
+
- name: Weiberfastnacht
|
|
68
|
+
regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn]
|
|
69
|
+
function: easter(year)
|
|
70
|
+
function_modifier: -52
|
|
71
|
+
type: informal
|
|
72
|
+
- name: Rosenmontag
|
|
73
|
+
regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn]
|
|
74
|
+
function: easter(year)
|
|
75
|
+
function_modifier: -48
|
|
76
|
+
type: informal
|
|
77
|
+
- name: Aschermittwoch
|
|
78
|
+
regions: [de_bw, de_by, de_he, de_nw, de_rp, de_sl, de_sn]
|
|
79
|
+
function: easter(year)
|
|
80
|
+
function_modifier: -46
|
|
81
|
+
type: informal
|
|
82
|
+
1:
|
|
83
|
+
- name: Neujahrstag
|
|
84
|
+
regions: [de]
|
|
85
|
+
mday: 1
|
|
86
|
+
- name: Heilige Drei Könige
|
|
87
|
+
regions: [de_bw, de_by, de_st]
|
|
88
|
+
mday: 6
|
|
89
|
+
3:
|
|
90
|
+
- name: Internationaler Frauentag
|
|
91
|
+
regions: [de_be]
|
|
92
|
+
mday: 8
|
|
93
|
+
year_ranges:
|
|
94
|
+
from: 2019
|
|
95
|
+
- name: Internationaler Frauentag
|
|
96
|
+
regions: [de_mv]
|
|
97
|
+
mday: 8
|
|
98
|
+
year_ranges:
|
|
99
|
+
from: 2023
|
|
100
|
+
5:
|
|
101
|
+
- name: Tag der Arbeit
|
|
102
|
+
regions: [de]
|
|
103
|
+
mday: 1
|
|
104
|
+
- name: Tag der Befreiung
|
|
105
|
+
regions: [de_be]
|
|
106
|
+
mday: 8
|
|
107
|
+
year_ranges:
|
|
108
|
+
limited: [2020]
|
|
109
|
+
6:
|
|
110
|
+
- name: Tag der Deutschen Einheit
|
|
111
|
+
regions: [de]
|
|
112
|
+
mday: 17
|
|
113
|
+
year_ranges:
|
|
114
|
+
between:
|
|
115
|
+
start: 1954
|
|
116
|
+
end: 1990
|
|
117
|
+
8:
|
|
118
|
+
- name: Mariä Himmelfahrt
|
|
119
|
+
regions: [de_by_cath, de_by_augsburg, de_sl]
|
|
120
|
+
mday: 15
|
|
121
|
+
- name: Friedensfest
|
|
122
|
+
regions: [de_by_augsburg]
|
|
123
|
+
mday: 8
|
|
124
|
+
9:
|
|
125
|
+
- name: Weltkindertag
|
|
126
|
+
regions: [de_th]
|
|
127
|
+
mday: 20
|
|
128
|
+
year_ranges:
|
|
129
|
+
from: 2019
|
|
130
|
+
10:
|
|
131
|
+
- name: Tag der Deutschen Einheit
|
|
132
|
+
regions: [de]
|
|
133
|
+
mday: 3
|
|
134
|
+
year_ranges:
|
|
135
|
+
from: 1990
|
|
136
|
+
- name: Reformationstag
|
|
137
|
+
regions: [de_bb, de_mv, de_sn, de_st, de_th]
|
|
138
|
+
mday: 31
|
|
139
|
+
- name: Reformationstag
|
|
140
|
+
regions: [de_bw]
|
|
141
|
+
mday: 31
|
|
142
|
+
type: informal
|
|
143
|
+
- name: Reformationstag
|
|
144
|
+
regions: [de]
|
|
145
|
+
mday: 31
|
|
146
|
+
year_ranges:
|
|
147
|
+
limited: [2017]
|
|
148
|
+
- name: Reformationstag
|
|
149
|
+
regions: [de_hb, de_hh, de_ni, de_sh]
|
|
150
|
+
mday: 31
|
|
151
|
+
year_ranges:
|
|
152
|
+
from: 2018
|
|
153
|
+
11:
|
|
154
|
+
- name: Allerheiligen
|
|
155
|
+
regions: [de_bw, de_by, de_nw, de_rp, de_sl]
|
|
156
|
+
mday: 1
|
|
157
|
+
- name: Buß- und Bettag
|
|
158
|
+
regions: [de_sn]
|
|
159
|
+
function: de_buss_und_bettag(year)
|
|
160
|
+
12:
|
|
161
|
+
- name: Heilig Abend
|
|
162
|
+
regions: [de]
|
|
163
|
+
mday: 24
|
|
164
|
+
type: informal
|
|
165
|
+
- name: 1. Weihnachtstag
|
|
166
|
+
regions: [de]
|
|
167
|
+
mday: 25
|
|
168
|
+
- name: 2. Weihnachtstag
|
|
169
|
+
regions: [de]
|
|
170
|
+
mday: 26
|
|
171
|
+
- name: Silvester
|
|
172
|
+
regions: [de]
|
|
173
|
+
mday: 31
|
|
174
|
+
type: informal
|
|
175
|
+
|
|
176
|
+
methods:
|
|
177
|
+
de_buss_und_bettag:
|
|
178
|
+
# Germany: Wednesday before November 23
|
|
179
|
+
arguments: year
|
|
180
|
+
ruby: |
|
|
181
|
+
date = Date.civil(year,11,23)
|
|
182
|
+
if date.wday > 3
|
|
183
|
+
date -= (date.wday - 3)
|
|
184
|
+
else
|
|
185
|
+
date -= (date.wday + 4)
|
|
186
|
+
end
|
|
187
|
+
date
|
|
188
|
+
|
|
189
|
+
tests:
|
|
190
|
+
- given:
|
|
191
|
+
date: '2009-01-01'
|
|
192
|
+
regions: ["de"]
|
|
193
|
+
options: ["informal"]
|
|
194
|
+
expect:
|
|
195
|
+
name: "Neujahrstag"
|
|
196
|
+
- given:
|
|
197
|
+
date: '2009-04-10'
|
|
198
|
+
regions: ["de"]
|
|
199
|
+
options: ["informal"]
|
|
200
|
+
expect:
|
|
201
|
+
name: "Karfreitag"
|
|
202
|
+
- given:
|
|
203
|
+
date: '2009-04-12'
|
|
204
|
+
regions: ["de"]
|
|
205
|
+
options: ["informal"]
|
|
206
|
+
expect:
|
|
207
|
+
name: "Ostersonntag"
|
|
208
|
+
- given:
|
|
209
|
+
date: '2009-04-13'
|
|
210
|
+
regions: ["de"]
|
|
211
|
+
options: ["informal"]
|
|
212
|
+
expect:
|
|
213
|
+
name: "Ostermontag"
|
|
214
|
+
- given:
|
|
215
|
+
date: '2009-05-01'
|
|
216
|
+
regions: ["de"]
|
|
217
|
+
options: ["informal"]
|
|
218
|
+
expect:
|
|
219
|
+
name: "Tag der Arbeit"
|
|
220
|
+
- given:
|
|
221
|
+
date: '2009-05-21'
|
|
222
|
+
regions: ["de"]
|
|
223
|
+
options: ["informal"]
|
|
224
|
+
expect:
|
|
225
|
+
name: "Christi Himmelfahrt"
|
|
226
|
+
- given:
|
|
227
|
+
date: '2009-05-31'
|
|
228
|
+
regions: ["de"]
|
|
229
|
+
options: ["informal"]
|
|
230
|
+
expect:
|
|
231
|
+
name: "Pfingstsonntag"
|
|
232
|
+
- given:
|
|
233
|
+
date: '2009-06-01'
|
|
234
|
+
regions: ["de"]
|
|
235
|
+
options: ["informal"]
|
|
236
|
+
expect:
|
|
237
|
+
name: "Pfingstmontag"
|
|
238
|
+
- given:
|
|
239
|
+
date: '2009-10-03'
|
|
240
|
+
regions: ["de"]
|
|
241
|
+
options: ["informal"]
|
|
242
|
+
expect:
|
|
243
|
+
name: "Tag der Deutschen Einheit"
|
|
244
|
+
- given:
|
|
245
|
+
date: '2009-12-24'
|
|
246
|
+
regions: ["de"]
|
|
247
|
+
options: ["informal"]
|
|
248
|
+
expect:
|
|
249
|
+
name: "Heilig Abend"
|
|
250
|
+
- given:
|
|
251
|
+
date: '2009-12-25'
|
|
252
|
+
regions: ["de"]
|
|
253
|
+
options: ["informal"]
|
|
254
|
+
expect:
|
|
255
|
+
name: "1. Weihnachtstag"
|
|
256
|
+
- given:
|
|
257
|
+
date: '2009-12-26'
|
|
258
|
+
regions: ["de"]
|
|
259
|
+
options: ["informal"]
|
|
260
|
+
expect:
|
|
261
|
+
name: "2. Weihnachtstag"
|
|
262
|
+
- given:
|
|
263
|
+
date: '2009-12-31'
|
|
264
|
+
regions: ["de"]
|
|
265
|
+
options: ["informal"]
|
|
266
|
+
expect:
|
|
267
|
+
name: "Silvester"
|
|
268
|
+
- given:
|
|
269
|
+
date: '2009-01-06'
|
|
270
|
+
regions: ["de_bw", "de_by", "de_st", "de_"]
|
|
271
|
+
expect:
|
|
272
|
+
name: "Heilige Drei Könige"
|
|
273
|
+
- given:
|
|
274
|
+
date: '2009-06-11'
|
|
275
|
+
regions: ["de_bw", "de_by", "de_he", "de_nw", "de_rp", "de_sl", "de_sn_sorbian", "de_th_cath"]
|
|
276
|
+
expect:
|
|
277
|
+
name: "Fronleichnam"
|
|
278
|
+
- given:
|
|
279
|
+
date: '2009-08-15'
|
|
280
|
+
regions: ["de_by", "de_sl", "de_"]
|
|
281
|
+
expect:
|
|
282
|
+
name: "Mariä Himmelfahrt"
|
|
283
|
+
- given:
|
|
284
|
+
date: '2009-10-31'
|
|
285
|
+
regions: ["de_bb", "de_mv", "de_sn", "de_st", "de_th", "de_"]
|
|
286
|
+
expect:
|
|
287
|
+
name: "Reformationstag"
|
|
288
|
+
- given:
|
|
289
|
+
date: '2009-10-31'
|
|
290
|
+
regions: ["de_bw"]
|
|
291
|
+
options: ["informal"]
|
|
292
|
+
expect:
|
|
293
|
+
name: "Reformationstag"
|
|
294
|
+
- given:
|
|
295
|
+
date: '2017-10-31'
|
|
296
|
+
regions: ["de"]
|
|
297
|
+
expect:
|
|
298
|
+
name: "Reformationstag"
|
|
299
|
+
- given:
|
|
300
|
+
date: '2016-10-31'
|
|
301
|
+
regions: ["de"]
|
|
302
|
+
expect:
|
|
303
|
+
holiday: false
|
|
304
|
+
- given:
|
|
305
|
+
date: '2018-10-31'
|
|
306
|
+
regions: ["de"]
|
|
307
|
+
expect:
|
|
308
|
+
holiday: false
|
|
309
|
+
- given:
|
|
310
|
+
date: '2018-10-31'
|
|
311
|
+
regions: ["de_bb", "de_hb", "de_hh", "de_mv", "de_ni", "de_sh", "de_sn", "de_st", "de_th"]
|
|
312
|
+
expect:
|
|
313
|
+
name: "Reformationstag"
|
|
314
|
+
- given:
|
|
315
|
+
date: '2009-11-01'
|
|
316
|
+
regions: ["de_bw", "de_by", "de_nw", "de_rp", "de_sl", "de_"]
|
|
317
|
+
expect:
|
|
318
|
+
name: "Allerheiligen"
|
|
319
|
+
- given:
|
|
320
|
+
date: '2015-08-08'
|
|
321
|
+
regions: ["de_by_augsburg"]
|
|
322
|
+
expect:
|
|
323
|
+
name: "Friedensfest"
|
|
324
|
+
- given:
|
|
325
|
+
date: '2015-08-08'
|
|
326
|
+
regions: ["de", "de_bw", "de_by", "de_bb", "de_he", "de_mv", "de_nw", "de_rp", "de_sl", "de_sn", "de_st", "de_th"]
|
|
327
|
+
expect:
|
|
328
|
+
holiday: false
|
|
329
|
+
- given:
|
|
330
|
+
date: '2010-05-08'
|
|
331
|
+
regions: ["de"]
|
|
332
|
+
expect:
|
|
333
|
+
holiday: false
|
|
334
|
+
- given:
|
|
335
|
+
date: '2010-08-08'
|
|
336
|
+
regions: ["de"]
|
|
337
|
+
expect:
|
|
338
|
+
holiday: false
|
|
339
|
+
- given:
|
|
340
|
+
date: '2004-11-17'
|
|
341
|
+
regions: ["de_sn"]
|
|
342
|
+
expect:
|
|
343
|
+
name: "Buß- und Bettag"
|
|
344
|
+
- given:
|
|
345
|
+
date: '2005-11-16'
|
|
346
|
+
regions: ["de_sn"]
|
|
347
|
+
expect:
|
|
348
|
+
name: "Buß- und Bettag"
|
|
349
|
+
- given:
|
|
350
|
+
date: '2006-11-22'
|
|
351
|
+
regions: ["de_sn"]
|
|
352
|
+
expect:
|
|
353
|
+
name: "Buß- und Bettag"
|
|
354
|
+
- given:
|
|
355
|
+
date: '2009-11-18'
|
|
356
|
+
regions: ["de_sn"]
|
|
357
|
+
expect:
|
|
358
|
+
name: "Buß- und Bettag"
|
|
359
|
+
- given:
|
|
360
|
+
date: '2016-02-04'
|
|
361
|
+
regions: ["de_bw", "de_by", "de_he", "de_nw", "de_rp", "de_sl", "de_sn"]
|
|
362
|
+
options: ["informal"]
|
|
363
|
+
expect:
|
|
364
|
+
name: "Weiberfastnacht"
|
|
365
|
+
- given:
|
|
366
|
+
date: '2016-02-08'
|
|
367
|
+
regions: ["de_bw", "de_by", "de_he", "de_nw", "de_rp", "de_sl", "de_sn"]
|
|
368
|
+
options: ["informal"]
|
|
369
|
+
expect:
|
|
370
|
+
name: "Rosenmontag"
|
|
371
|
+
- given:
|
|
372
|
+
date: '2016-02-10'
|
|
373
|
+
regions: ["de_bw", "de_by", "de_he", "de_nw", "de_rp", "de_sl", "de_sn"]
|
|
374
|
+
options: ["informal"]
|
|
375
|
+
expect:
|
|
376
|
+
name: "Aschermittwoch"
|
|
377
|
+
- given:
|
|
378
|
+
date: '2018-03-08'
|
|
379
|
+
regions: ["de_be"]
|
|
380
|
+
expect:
|
|
381
|
+
holiday: false
|
|
382
|
+
- given:
|
|
383
|
+
date: '2019-03-08'
|
|
384
|
+
regions: ["de_be"]
|
|
385
|
+
expect:
|
|
386
|
+
name: "Internationaler Frauentag"
|
|
387
|
+
- given:
|
|
388
|
+
date: '2023-03-08'
|
|
389
|
+
regions: ["de_mv"]
|
|
390
|
+
expect:
|
|
391
|
+
name: "Internationaler Frauentag"
|
|
392
|
+
- given:
|
|
393
|
+
date: '2020-05-08'
|
|
394
|
+
regions: ["de_be"]
|
|
395
|
+
expect:
|
|
396
|
+
name: "Tag der Befreiung"
|
|
397
|
+
- given:
|
|
398
|
+
date: "2024-09-20"
|
|
399
|
+
regions: ["de_th"]
|
|
400
|
+
expect:
|
|
401
|
+
name: "Weltkindertag"
|
data/definitions/dk.yaml
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Danish holiday definitions for the Ruby Holiday gem.
|
|
2
|
+
#
|
|
3
|
+
# Updated: 2008-11-22.
|
|
4
|
+
# Sources:
|
|
5
|
+
# - http://en.wikipedia.org/wiki/Holidays_in_Denmark
|
|
6
|
+
# - http://www.amblondon.um.dk/en/menu/AboutDenmark/PublicHolidaysInDK/PublicHolidaysinDenmark-until2010.htm
|
|
7
|
+
# - http://borger.dk/forside/kirke-og-tro/folkekirken/officielle-helligdage
|
|
8
|
+
---
|
|
9
|
+
months:
|
|
10
|
+
0:
|
|
11
|
+
- name: Fastelavn
|
|
12
|
+
regions: [dk]
|
|
13
|
+
function: easter(year)
|
|
14
|
+
function_modifier: -49
|
|
15
|
+
type: informal
|
|
16
|
+
- name: Palmesøndag
|
|
17
|
+
regions: [dk]
|
|
18
|
+
function: easter(year)
|
|
19
|
+
function_modifier: -7
|
|
20
|
+
type: informal
|
|
21
|
+
- name: Skærtorsdag
|
|
22
|
+
regions: [dk]
|
|
23
|
+
function: easter(year)
|
|
24
|
+
function_modifier: -3
|
|
25
|
+
- name: Langfredag
|
|
26
|
+
regions: [dk]
|
|
27
|
+
function: easter(year)
|
|
28
|
+
function_modifier: -2
|
|
29
|
+
- name: Påskedag
|
|
30
|
+
regions: [dk]
|
|
31
|
+
function: easter(year)
|
|
32
|
+
- name: 2. påskedag
|
|
33
|
+
regions: [dk]
|
|
34
|
+
function: easter(year)
|
|
35
|
+
function_modifier: 1
|
|
36
|
+
- name: Store Bededag
|
|
37
|
+
regions: [dk]
|
|
38
|
+
function: easter(year)
|
|
39
|
+
function_modifier: 26
|
|
40
|
+
year_ranges:
|
|
41
|
+
until: 2023
|
|
42
|
+
- name: Kristi Himmelfartsdag
|
|
43
|
+
regions: [dk]
|
|
44
|
+
function: easter(year)
|
|
45
|
+
function_modifier: 39
|
|
46
|
+
- name: Pinsedag
|
|
47
|
+
regions: [dk]
|
|
48
|
+
function: easter(year)
|
|
49
|
+
function_modifier: 49
|
|
50
|
+
- name: 2. Pinsedag
|
|
51
|
+
regions: [dk]
|
|
52
|
+
function: easter(year)
|
|
53
|
+
function_modifier: 50
|
|
54
|
+
1:
|
|
55
|
+
- name: Nytårsdag
|
|
56
|
+
regions: [dk]
|
|
57
|
+
mday: 1
|
|
58
|
+
4:
|
|
59
|
+
- name: 1. april
|
|
60
|
+
regions: [dk]
|
|
61
|
+
mday: 1
|
|
62
|
+
type: informal
|
|
63
|
+
- name: Danmarks besættelse
|
|
64
|
+
regions: [dk]
|
|
65
|
+
mday: 9
|
|
66
|
+
type: informal
|
|
67
|
+
- name: Dronningens fødselsdag
|
|
68
|
+
regions: [dk]
|
|
69
|
+
mday: 16
|
|
70
|
+
type: informal
|
|
71
|
+
5:
|
|
72
|
+
- name: Arbejdernes kampdag
|
|
73
|
+
regions: [dk]
|
|
74
|
+
mday: 1
|
|
75
|
+
type: informal
|
|
76
|
+
- name: Danmarks befrielse
|
|
77
|
+
regions: [dk]
|
|
78
|
+
mday: 5
|
|
79
|
+
type: informal
|
|
80
|
+
6:
|
|
81
|
+
- name: Grundlovsdag
|
|
82
|
+
regions: [dk]
|
|
83
|
+
mday: 5
|
|
84
|
+
type: informal
|
|
85
|
+
- name: Valdemarsdag og Genforeningsdag
|
|
86
|
+
regions: [dk]
|
|
87
|
+
mday: 15
|
|
88
|
+
type: informal
|
|
89
|
+
- name: Sankt Hans aften
|
|
90
|
+
regions: [dk]
|
|
91
|
+
mday: 23
|
|
92
|
+
type: informal
|
|
93
|
+
11:
|
|
94
|
+
- name: Mortensaften
|
|
95
|
+
regions: [dk]
|
|
96
|
+
mday: 10
|
|
97
|
+
type: informal
|
|
98
|
+
12:
|
|
99
|
+
- name: Sankt Lucia
|
|
100
|
+
regions: [dk]
|
|
101
|
+
mday: 13
|
|
102
|
+
type: informal
|
|
103
|
+
- name: Juleaftensdag
|
|
104
|
+
regions: [dk]
|
|
105
|
+
mday: 24
|
|
106
|
+
type: informal
|
|
107
|
+
- name: 1. juledag
|
|
108
|
+
regions: [dk]
|
|
109
|
+
mday: 25
|
|
110
|
+
- name: 2. juledag
|
|
111
|
+
regions: [dk]
|
|
112
|
+
mday: 26
|
|
113
|
+
|
|
114
|
+
tests:
|
|
115
|
+
- given:
|
|
116
|
+
date: '2023-05-05'
|
|
117
|
+
regions: ["dk"]
|
|
118
|
+
expect:
|
|
119
|
+
name: "Store Bededag"
|
|
120
|
+
- given:
|
|
121
|
+
date: '2024-04-26'
|
|
122
|
+
regions: ["dk"]
|
|
123
|
+
expect:
|
|
124
|
+
holiday: false
|
|
125
|
+
- given:
|
|
126
|
+
date: '2007-01-01'
|
|
127
|
+
regions: ["dk"]
|
|
128
|
+
options: ["informal"]
|
|
129
|
+
expect:
|
|
130
|
+
name: "Nytårsdag"
|
|
131
|
+
- given:
|
|
132
|
+
date: '2007-02-18'
|
|
133
|
+
regions: ["dk"]
|
|
134
|
+
options: ["informal"]
|
|
135
|
+
expect:
|
|
136
|
+
name: "Fastelavn"
|
|
137
|
+
- given:
|
|
138
|
+
date: '2007-04-09'
|
|
139
|
+
regions: ["dk"]
|
|
140
|
+
options: ["informal"]
|
|
141
|
+
expect:
|
|
142
|
+
name: "2. påskedag"
|
|
143
|
+
- given:
|
|
144
|
+
date: '2007-04-16'
|
|
145
|
+
regions: ["dk"]
|
|
146
|
+
options: ["informal"]
|
|
147
|
+
expect:
|
|
148
|
+
name: "Dronningens fødselsdag"
|
|
149
|
+
- given:
|
|
150
|
+
date: '2007-04-05'
|
|
151
|
+
regions: ["dk"]
|
|
152
|
+
options: ["informal"]
|
|
153
|
+
expect:
|
|
154
|
+
name: "Skærtorsdag"
|
|
155
|
+
- given:
|
|
156
|
+
date: '2007-04-06'
|
|
157
|
+
regions: ["dk"]
|
|
158
|
+
options: ["informal"]
|
|
159
|
+
expect:
|
|
160
|
+
name: "Langfredag"
|
|
161
|
+
- given:
|
|
162
|
+
date: '2007-04-08'
|
|
163
|
+
regions: ["dk"]
|
|
164
|
+
options: ["informal"]
|
|
165
|
+
expect:
|
|
166
|
+
name: "Påskedag"
|
|
167
|
+
- given:
|
|
168
|
+
date: '2007-05-01'
|
|
169
|
+
regions: ["dk"]
|
|
170
|
+
options: ["informal"]
|
|
171
|
+
expect:
|
|
172
|
+
name: "Arbejdernes kampdag"
|
|
173
|
+
- given:
|
|
174
|
+
date: '2007-05-04'
|
|
175
|
+
regions: ["dk"]
|
|
176
|
+
options: ["informal"]
|
|
177
|
+
expect:
|
|
178
|
+
name: "Store Bededag"
|
|
179
|
+
- given:
|
|
180
|
+
date: '2007-05-17'
|
|
181
|
+
regions: ["dk"]
|
|
182
|
+
options: ["informal"]
|
|
183
|
+
expect:
|
|
184
|
+
name: "Kristi Himmelfartsdag"
|
|
185
|
+
- given:
|
|
186
|
+
date: '2007-05-27'
|
|
187
|
+
regions: ["dk"]
|
|
188
|
+
options: ["informal"]
|
|
189
|
+
expect:
|
|
190
|
+
name: "Pinsedag"
|
|
191
|
+
- given:
|
|
192
|
+
date: '2007-05-28'
|
|
193
|
+
regions: ["dk"]
|
|
194
|
+
options: ["informal"]
|
|
195
|
+
expect:
|
|
196
|
+
name: "2. Pinsedag"
|
|
197
|
+
- given:
|
|
198
|
+
date: '2007-06-05'
|
|
199
|
+
regions: ["dk"]
|
|
200
|
+
options: ["informal"]
|
|
201
|
+
expect:
|
|
202
|
+
name: "Grundlovsdag"
|
|
203
|
+
- given:
|
|
204
|
+
date: '2007-12-24'
|
|
205
|
+
regions: ["dk"]
|
|
206
|
+
options: ["informal"]
|
|
207
|
+
expect:
|
|
208
|
+
name: "Juleaftensdag"
|
|
209
|
+
- given:
|
|
210
|
+
date: '2007-12-25'
|
|
211
|
+
regions: ["dk"]
|
|
212
|
+
options: ["informal"]
|
|
213
|
+
expect:
|
|
214
|
+
name: "1. juledag"
|
|
215
|
+
- given:
|
|
216
|
+
date: '2007-12-26'
|
|
217
|
+
regions: ["dk"]
|
|
218
|
+
options: ["informal"]
|
|
219
|
+
expect:
|
|
220
|
+
name: "2. juledag"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# How to contribute
|
|
2
|
+
|
|
3
|
+
In this repository we have all of the definitions that are used in holiday calculations. We rely on users around the world to help keep our definitions accurate and up to date.
|
|
4
|
+
|
|
5
|
+
## Code of Conduct
|
|
6
|
+
|
|
7
|
+
Please read our [Code of Conduct](https://github.com/holidays/holidays/blob/master/CODE_OF_CONDUCT.md) before contributing. Everyone interacting with this project (or associated projects) is expected to abide by its terms.
|
|
8
|
+
|
|
9
|
+
## Definition Updates
|
|
10
|
+
|
|
11
|
+
Our definitions are written in YAML. You can find a complete guide to our format in the [syntax docs](SYNTAX.md). We take the YAML definitions and generate final definition files in the various projects that are loaded at runtime for fast calculations.
|
|
12
|
+
|
|
13
|
+
Here are the steps to take once you have a good idea on what you want to change:
|
|
14
|
+
|
|
15
|
+
* Fork this repository
|
|
16
|
+
* Edit desired definition YAML file(s). If you are adding a new region be sure to update `index.yaml` as well
|
|
17
|
+
* Run `make validate` to ensure that all updates match our definition format
|
|
18
|
+
* Ensure that the tests in holidays pass:
|
|
19
|
+
```
|
|
20
|
+
git clone git@github.com:holidays/holidays.git
|
|
21
|
+
cd holidays
|
|
22
|
+
bundle install
|
|
23
|
+
make clean-defs
|
|
24
|
+
BRANCH=<YOUR_BRANCH_NAME> USER=<YOUR_GITHUB_USERNAME> make point-to-defs-branch
|
|
25
|
+
bundle exec rake generate:definitions
|
|
26
|
+
bundle exec rake test # Alternatively: bundle exec rake test_region <your_region>
|
|
27
|
+
```
|
|
28
|
+
* Open a PR with your changes
|
|
29
|
+
|
|
30
|
+
Including documentation with your updates is very much appreciated. A simple Wikipedia entry or government link in the comments alongside your changes would be perfect.
|
|
31
|
+
|
|
32
|
+
Lastly, note that there are many 'meta' regions. For example, there are regions for Europe, Scandinavia, and North America. If your new region(s) falls into these areas consider adding them. You can find these 'meta' regions in `definitions/index.yaml`.
|
|
33
|
+
|
|
34
|
+
Don't worry about versioning, we'll handle it on our end.
|
|
35
|
+
|
|
36
|
+
*Tests are required for new definitions*.
|
|
37
|
+
|
|
38
|
+
## Definition Validation
|
|
39
|
+
|
|
40
|
+
We maintain a `make validate` command to ensure that all YAML definitions match our internal specifications. This is to make working with this repository as independent as possible from the other repositories (like the existing ruby repository). If `make validate` passes then we ensure that anything consuming these files will receive 'correct' formats.
|
|
41
|
+
|
|
42
|
+
If you run into any weird `make validate` errors please open an issue or PR and highlight to what you are seeing. The validation code is brand-new and might have issues. Maintainers will respond quickly to any open problems.
|
|
43
|
+
|
|
44
|
+
If you would like to add to, update, or otherwise fix any of our specs then please fork and submit a PR like you would any other change. Please note that we require 100% test coverage. Your builds will not pass if you fall below 100%.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Maintainers guide
|
|
2
|
+
|
|
3
|
+
This document outlines the process of releasing an update of the definitions in this repository. Please note
|
|
4
|
+
that this document does NOT try to explain how to create packages for various languages. It is *just*
|
|
5
|
+
for creating version snapshots of definition files.
|
|
6
|
+
|
|
7
|
+
To be as clear as possible: this repository is *just* for definition updates. We 'release' updates as tags in Github
|
|
8
|
+
but do not push any code updates. Downstream projects (like ruby) will consume this and make their own appropriate releases.
|
|
9
|
+
The 'releases' in this project are mainly for organizational purposes.
|
|
10
|
+
|
|
11
|
+
### Who this document is for
|
|
12
|
+
|
|
13
|
+
This document is for maintainers that have merge access to this repository. Generally these people will also have access to any
|
|
14
|
+
language-specific libraries and so this will be a part of the entire release process. Usually other libraries (like the ruby library)
|
|
15
|
+
will reference this document as part of its own release process.
|
|
16
|
+
|
|
17
|
+
Please note that a core contributor must provide the relevant Github access so that you can perform merges. If you have any issues
|
|
18
|
+
please contact the [core members](https://github.com/orgs/holidays/teams/core/members) for assistance.
|
|
19
|
+
|
|
20
|
+
### Setup
|
|
21
|
+
|
|
22
|
+
This guide assumes that you have forked the repository in Github. If you require assistance in this please contact the core members listed above.
|
|
23
|
+
|
|
24
|
+
### Merging new definition changes
|
|
25
|
+
|
|
26
|
+
When new PRs are submitted you can navigate the following steps:
|
|
27
|
+
|
|
28
|
+
* Make sure that the PR Travis CI builds are green. If they are green then you can simply continue. If there are errors you
|
|
29
|
+
will need to investigate further (contact a core member for assistance).
|
|
30
|
+
* If the builds are green and the changes look reasonable to you then go ahead and merge!
|
|
31
|
+
* Once the merges are done, make a new branch on your fork that includes an updated [CHANGELOG](https://github.com/holidays/definitions/blob/master/CHANGELOG.md)
|
|
32
|
+
that has the new version and associated changes. This is pretty open-ended! Include the information that you feel is
|
|
33
|
+
important. Use past CHANGELOG updates as a guide.
|
|
34
|
+
* Open a PR against the CHANGELOG branch and merge it (this may require another maintainer for safety)
|
|
35
|
+
* Once the updated CHANGELOG is merged, go to [releases](https://github.com/holidays/definitions/releases) and create a new release. It should point at the latest commit that contains the changes that you want included in this release. If you just merged then you can just point at master. All release versions follow this format: `vMAJOR.MINOR.PATCH`. This should follow normal [semver rules](https://semver.org/).
|
|
36
|
+
|
|
37
|
+
You don't need to list out the specific changes that were made on the release description. You can just give a general overview and then link to the updated CHANGELOG that you did in a previous step. Example: [v2.2.0](https://github.com/holidays/definitions/releases/tag/v2.2.0)
|
|
38
|
+
|
|
39
|
+
Once the release is created in Github you are done! The definitions have been 'released' and downstream projects (right now just ruby) can reference them without issues. See the maintainers guides in downstream projects for information on how to release updates for each language.
|