diff --git a/CHANGELOG.md b/CHANGELOG.md index 2329480..85ce0e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ -## Latest Version 1.10.0 +## Latest Version 1.11.0 +> on 2025-11-04 + +* **FEAT**: 支持 2026年 的节假日 + - 依据国务院公告,见 `https://www.gov.cn/zhengce/content/202511/content_7047090.htm` + +## Version 1.10.0 > on 2025-11-13 * **FEAT**: 支持 2025年 的节假日 diff --git a/README.en.md b/README.en.md index 4e8e9b8..87fd445 100644 --- a/README.en.md +++ b/README.en.md @@ -6,7 +6,7 @@ [![README](https://img.shields.io/badge/简介-中文-brightgreen.svg)](https://github.com/LKI/chinese-calendar/blob/master/README.md) Check if some date is workday or holiday in China. -Support 2004 ~ 2025. +Support 2004 ~ 2026. ## Installation diff --git a/README.md b/README.md index 0cda47e..a4f82a3 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![README](https://img.shields.io/badge/README-English-brightgreen.svg)](https://github.com/LKI/chinese-calendar/blob/master/README.en.md) 判断某年某月某一天是不是工作日/节假日。 -支持 2004年 至 2025年,包括 2020年 的春节延长。 +支持 2004年 至 2026年,包括 2020年 的春节延长。 ## 安装 diff --git a/chinese_calendar/constants.py b/chinese_calendar/constants.py index 07ac2dd..42a3ee4 100644 --- a/chinese_calendar/constants.py +++ b/chinese_calendar/constants.py @@ -616,6 +616,39 @@ def __new__(cls, english, chinese, days): datetime.date(year=2025, month=10, day=6): Holiday.mid_autumn_festival.value, datetime.date(year=2025, month=10, day=7): Holiday.national_day.value, datetime.date(year=2025, month=10, day=8): Holiday.national_day.value, + datetime.date(year=2026, month=1, day=1): Holiday.new_years_day.value, + datetime.date(year=2026, month=1, day=2): Holiday.new_years_day.value, + datetime.date(year=2026, month=1, day=3): Holiday.new_years_day.value, + datetime.date(year=2026, month=2, day=15): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=16): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=17): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=18): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=19): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=20): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=21): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=22): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=23): Holiday.spring_festival.value, + datetime.date(year=2026, month=4, day=4): Holiday.tomb_sweeping_day.value, + datetime.date(year=2026, month=4, day=5): Holiday.tomb_sweeping_day.value, + datetime.date(year=2026, month=4, day=6): Holiday.tomb_sweeping_day.value, + datetime.date(year=2026, month=5, day=1): Holiday.labour_day.value, + datetime.date(year=2026, month=5, day=2): Holiday.labour_day.value, + datetime.date(year=2026, month=5, day=3): Holiday.labour_day.value, + datetime.date(year=2026, month=5, day=4): Holiday.labour_day.value, + datetime.date(year=2026, month=5, day=5): Holiday.labour_day.value, + datetime.date(year=2026, month=6, day=19): Holiday.dragon_boat_festival.value, + datetime.date(year=2026, month=6, day=20): Holiday.dragon_boat_festival.value, + datetime.date(year=2026, month=6, day=21): Holiday.dragon_boat_festival.value, + datetime.date(year=2026, month=9, day=25): Holiday.mid_autumn_festival.value, + datetime.date(year=2026, month=9, day=26): Holiday.mid_autumn_festival.value, + datetime.date(year=2026, month=9, day=27): Holiday.mid_autumn_festival.value, + datetime.date(year=2026, month=10, day=1): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=2): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=3): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=4): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=5): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=6): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=7): Holiday.national_day.value, } workdays = { @@ -763,6 +796,12 @@ def __new__(cls, english, chinese, days): datetime.date(year=2025, month=4, day=27): Holiday.labour_day.value, datetime.date(year=2025, month=9, day=28): Holiday.national_day.value, datetime.date(year=2025, month=10, day=11): Holiday.national_day.value, + datetime.date(year=2026, month=1, day=4): Holiday.new_years_day.value, + datetime.date(year=2026, month=2, day=14): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=28): Holiday.spring_festival.value, + datetime.date(year=2026, month=5, day=9): Holiday.labour_day.value, + datetime.date(year=2026, month=9, day=20): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=10): Holiday.national_day.value, } in_lieu_days = { @@ -911,4 +950,10 @@ def __new__(cls, english, chinese, days): datetime.date(year=2025, month=5, day=5): Holiday.labour_day.value, datetime.date(year=2025, month=10, day=7): Holiday.national_day.value, datetime.date(year=2025, month=10, day=8): Holiday.national_day.value, + datetime.date(year=2026, month=1, day=2): Holiday.new_years_day.value, + datetime.date(year=2026, month=2, day=20): Holiday.spring_festival.value, + datetime.date(year=2026, month=2, day=23): Holiday.spring_festival.value, + datetime.date(year=2026, month=5, day=5): Holiday.labour_day.value, + datetime.date(year=2026, month=10, day=6): Holiday.national_day.value, + datetime.date(year=2026, month=10, day=7): Holiday.national_day.value, } diff --git a/chinese_calendar/scripts/data.py b/chinese_calendar/scripts/data.py index 4bacd75..0c44535 100644 --- a/chinese_calendar/scripts/data.py +++ b/chinese_calendar/scripts/data.py @@ -66,6 +66,25 @@ def __init__(self): pass # fmt: off + def _2026(self): + """https://www.gov.cn/zhengce/content/202511/content_7047090.htm + 一、元旦:1月1日(周四)至3日(周六)放假调休,共3天。1月4日(周日)上班。 + 二、春节:2月15日(农历腊月二十八、周日)至23日(农历正月初七、周一)放假调休,共9天。2月14日(周六)、2月28日(周六)上班。 + 三、清明节:4月4日(周六)至6日(周一)放假,共3天。 + 四、劳动节:5月1日(周五)至5日(周二)放假调休,共5天。5月9日(周六)上班。 + 五、端午节:6月19日(周五)至21日(周日)放假,共3天。 + 六、中秋节:9月25日(周五)至27日(周日)放假,共3天。 + 七、国庆节:10月1日(周四)至7日(周三)放假调休,共7天。9月20日(周日)、10月10日(周六)上班。 + """ + self.year_at(2026) \ + .nyd().rest(1, 1).to(1, 3).work(1, 4).in_lieu(1, 2) \ + .sf().rest(2, 15).to(2, 23).work(2, 14).work(2, 28).in_lieu(2, 20).in_lieu(2, 23) \ + .tsd().rest(4, 4).to(4, 6) \ + .ld().rest(5, 1).to(5, 5).work(5, 9).in_lieu(5, 5) \ + .dbf().rest(6, 19).to(6, 21) \ + .maf().rest(9, 25).to(9, 27) \ + .nd().rest(10, 1).to(10, 7).work(9, 20).work(10, 10).in_lieu(10, 6).to(10, 7) + def _2025(self): """https://www.gov.cn/zhengce/content/202411/content_6986382.htm 一、元旦:1月1日(周三)放假1天,不调休。