Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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年 的节假日
Expand Down
2 changes: 1 addition & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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年 的春节延长。

## 安装

Expand Down
45 changes: 45 additions & 0 deletions chinese_calendar/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down Expand Up @@ -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 = {
Expand Down Expand Up @@ -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,
}
19 changes: 19 additions & 0 deletions chinese_calendar/scripts/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -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天,不调休。
Expand Down