diff --git a/chinese_calendar/constants.py b/chinese_calendar/constants.py index bb87fc6..daa6460 100644 --- a/chinese_calendar/constants.py +++ b/chinese_calendar/constants.py @@ -531,6 +531,33 @@ def __new__(cls, english, chinese, days): datetime.date(year=2022, month=10, day=5): Holiday.national_day.value, datetime.date(year=2022, month=10, day=6): Holiday.national_day.value, datetime.date(year=2022, month=10, day=7): Holiday.national_day.value, + datetime.date(year=2022, month=12, day=31): Holiday.new_years_day.value, + datetime.date(year=2023, month=1, day=1): Holiday.new_years_day.value, + datetime.date(year=2023, month=1, day=2): Holiday.new_years_day.value, + datetime.date(year=2023, month=1, day=21): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=22): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=23): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=24): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=25): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=26): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=27): Holiday.spring_festival.value, + datetime.date(year=2023, month=4, day=5): Holiday.tomb_sweeping_day.value, + datetime.date(year=2023, month=4, day=29): Holiday.labour_day.value, + datetime.date(year=2023, month=4, day=30): Holiday.labour_day.value, + datetime.date(year=2023, month=5, day=1): Holiday.labour_day.value, + datetime.date(year=2023, month=5, day=2): Holiday.labour_day.value, + datetime.date(year=2023, month=5, day=3): Holiday.labour_day.value, + datetime.date(year=2023, month=6, day=22): Holiday.dragon_boat_festival.value, + datetime.date(year=2023, month=6, day=23): Holiday.dragon_boat_festival.value, + datetime.date(year=2023, month=6, day=24): Holiday.dragon_boat_festival.value, + datetime.date(year=2023, month=9, day=29): Holiday.mid_autumn_festival.value, + datetime.date(year=2023, month=9, day=30): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=1): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=2): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=3): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=4): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=5): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=6): Holiday.national_day.value, } workdays = { @@ -658,6 +685,13 @@ def __new__(cls, english, chinese, days): datetime.date(year=2022, month=5, day=7): Holiday.labour_day.value, datetime.date(year=2022, month=10, day=8): Holiday.national_day.value, datetime.date(year=2022, month=10, day=9): Holiday.national_day.value, + datetime.date(year=2023, month=1, day=28): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=29): Holiday.spring_festival.value, + datetime.date(year=2023, month=4, day=23): Holiday.labour_day.value, + datetime.date(year=2023, month=5, day=6): Holiday.labour_day.value, + datetime.date(year=2023, month=6, day=25): Holiday.dragon_boat_festival.value, + datetime.date(year=2023, month=10, day=7): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=8): Holiday.national_day.value, } in_lieu_days = { @@ -786,4 +820,11 @@ def __new__(cls, english, chinese, days): datetime.date(year=2022, month=5, day=4): Holiday.labour_day.value, datetime.date(year=2022, month=10, day=6): Holiday.national_day.value, datetime.date(year=2022, month=10, day=7): Holiday.national_day.value, + datetime.date(year=2023, month=1, day=26): Holiday.spring_festival.value, + datetime.date(year=2023, month=1, day=27): Holiday.spring_festival.value, + datetime.date(year=2023, month=5, day=2): Holiday.labour_day.value, + datetime.date(year=2023, month=5, day=3): Holiday.labour_day.value, + datetime.date(year=2023, month=6, day=23): Holiday.dragon_boat_festival.value, + datetime.date(year=2023, month=10, day=5): Holiday.national_day.value, + datetime.date(year=2023, month=10, day=6): Holiday.national_day.value, } diff --git a/chinese_calendar/scripts/data.py b/chinese_calendar/scripts/data.py index 75ae616..b5a2b5c 100644 --- a/chinese_calendar/scripts/data.py +++ b/chinese_calendar/scripts/data.py @@ -66,6 +66,24 @@ def __init__(self): pass # fmt: off + def _2023(self): + """ http://www.gov.cn/zhengce/content/2022-12/08/content_5730844.htm + 一、元旦:2022年12月31日至2023年1月2日放假调休,共3天。 + 二、春节:1月21日至27日放假调休,共7天。1月28日(星期六)、1月29日(星期日)上班。 + 三、清明节:4月5日放假,共1天。 + 四、劳动节:4月29日至5月3日放假调休,共5天。4月23日(星期日)、5月6日(星期六)上班。 + 五、端午节:6月22日至24日放假调休,共3天。6月25日(星期日)上班。 + 六、中秋节、国庆节:9月29日至10月6日放假调休,共8天。10月7日(星期六)、10月8日(星期日)上班。 + """ + self.year_at(2023) \ + .nyd().rest(1, 1).to(1, 2) \ + .sf().rest(1, 21).to(1, 27).work(1, 28).to(1, 29).in_lieu(1, 26).to(1, 27) \ + .tsd().rest(4, 5) \ + .ld().rest(4, 29).to(5, 3).work(4, 23).work(5, 6).in_lieu(5, 2).to(5, 3) \ + .dbf().rest(6, 22).to(6, 24).work(6, 25).in_lieu(6, 23) \ + .maf().rest(9, 29) \ + .nd().rest(9, 30).to(10, 6).work(10, 7).to(10, 8).in_lieu(10, 5).to(10, 6) + def _2022(self): """ http://www.gov.cn/zhengce/content/2021-10/25/content_5644835.htm 一、元旦:2022年1月1日至3日放假,共3天。 @@ -83,7 +101,8 @@ def _2022(self): .ld().rest(4, 30).to(5, 4).work(4, 24).work(5, 7).in_lieu(5, 3).to(5, 4) \ .dbf().rest(6, 3).to(6, 5) \ .maf().rest(9, 10).to(9, 12) \ - .nd().rest(10, 1).to(10, 7).work(10, 8).work(10, 9).in_lieu(10, 6).to(10, 7) + .nd().rest(10, 1).to(10, 7).work(10, 8).work(10, 9).in_lieu(10, 6).to(10, 7) \ + .nyd().rest(12, 31) def _2021(self): """ http://www.gov.cn/zhengce/content/2020-11/25/content_5564127.htm diff --git a/tests/test_holiday_amount.py b/tests/test_holiday_amount.py index 0c5e85e..cd08bd1 100644 --- a/tests/test_holiday_amount.py +++ b/tests/test_holiday_amount.py @@ -21,6 +21,6 @@ def test_holiday_amount(self): holiday_amounts[2012] -= 1 # 12年可以享受11年补班的假 holiday_amounts[2015] -= 1 # 15年是中国人民抗日战争暨世界反法西斯战争胜利70周年,多放1天 holiday_amounts[2020] -= 2 # 20年春节因为新型冠状病毒疫情防控,延长假期2天 - for year in range(2007, 2022 + 1): # 06年数据少,不测了 + for year in range(2007, 2023 + 1): # 06年数据少,不测了 self.assertEqual(11, holiday_amounts[year], "Holiday amount of year {}".format(year)) self.assertEqual(1, 1)