chinese_calendar 是一个专门用于处理中国法定节假日和调休的 Python 库。它会根据国务院每年发布的官方安排,判断一个日期是工作日、节假日还是调休日。其优点是使用方便、结果准确,缺点是每年需要更新,以便导入最新的节假日信息。
库的安装
pip install chinese_calendar
常用的函数
is_workday(date_obj) 用于判断是否为工作日。
date_obj:datetime.date 类型的日期对象
返回值bool: True 表示是工作日,False 表示不是
date_objimport chinese_calendar as ccimport datetime result1 = cc.is_workday(datetime.date(2025, 10, 1)) #国庆节 print(result1)result2 = cc.is_workday(datetime.date(2025, 10, 11)) #国庆节调休日,需要上班print(result2)
结果为:
False
True
- is_holiday(date_obj) 判断是否为节假日。
date_obj:datetime.date 类型的日期对象
返回值bool: True 表示是法定节假日,False 表示不是
result1 = cc.is_workday(datetime.date(2025, 10, 1)) #国庆节 print(result1)result2 = cc.is_workday(datetime.date(2025, 10, 11)) #国庆节调休日,需要上班print(result2)
结果为:
True
False
get_holiday_detail() 获取节假日详情
date_obj:datetime.date 类型的日期对象
返回值为元组:(bool,str)其中第一个元素表示是否为节假日,第二个元素是节假日名称
result2 = cc.get_holiday_detail(datetime.date(2026,5,1)) print(result2)
结果为:
4. get_holidays(start, end, include_weekends=True) 获取某段时间内的节假日列表
start:起始日期,datetime.date 类型
end:结束日期,datetime.date 类型
include_weekends:布尔值,是否包含普通周末,默认为 True
返回值: 一个包含所有节假日日期的列表
holidays = cc.get_holidays(datetime.date(2025,1,1),datetime.date(2025,12,31),include_weekends=True)for each in holidays: print(each)
5.get_workdays(start, end)获取某段时间内的工作日列表
start:起始日期,datetime.date 类型
end:结束日期,datetime.date 类型(包含该日期)
workdays = cc.get_workdays(datetime.date(2025,1,1),datetime.date(2025,12,31))for each in workdays: print(each)
结论:通过调用该Python库,很方便的就可以查询出某个时间段内的节假日,大大减轻了自己判断法定节假日和工作日工作量。尤其适用于对节假日要求比较高的场合,例如医院中对病历三日归档的要求,必须将节假日排除在计算范围内。