Check if some date is workday or holiday in China. Support 2004 ~ 2025.
pip install chinesecalendar
pip install -U chinesecalendar
Chinese government announces holiday arrangement usually during November. This project will release new version after official announcement.
import datetime
# Check if 2018-04-30 is holiday in China
from chinese_calendar import is_holiday, is_workday
april_last = datetime.date(2018, 4, 30)
assert is_workday(april_last) is False
assert is_holiday(april_last) is True
# or check and get the holiday name
import chinese_calendar as calendar # 也可以这样 import
on_holiday, holiday_name = calendar.get_holiday_detail(april_last)
assert on_holiday is True
assert holiday_name == calendar.Holiday.labour_day.value
# even check if a holiday is in lieu
import chinese_calendar
assert chinese_calendar.is_in_lieu(datetime.date(2006, 2, 1)) is False
assert chinese_calendar.is_in_lieu(datetime.date(2006, 2, 2)) is True
If you fail to use Python directly, you can translate the constants file to get the complete chinese holiday arrangement.
- Fork & Clone this project
- Modify calendar definition file
- Run script to generate the constants file
- Create a PR