python的第三方模块chinesecalendar,提供了判断工作日、休息日、节假日的方法。 不仅可以判断法定节假日,还可以返回节假日的名称,对调休日也可以做出判断,十分好用。 具体用法如下: 1、chinesecalendar模块安装 进入到本地python安装的Scripts文件路径下, 输入安装命令:pip install chinesecalendar,回车即可安装。 注:每一年年底都需更新到最新版本的chinesecalendar,才会支持最新的一年。如上图安装的是最新版本,支持2004年-2022年。如果不更新,超过版本支持的年份,将会报错,如这里的版本只支持到2022年,超过将会报错如下:
2、chinesecalendar模块常见方法及导入
该模块常用的方法,如下表:
模块 | 说明 |
---|
is_workday | 判断是否为工作日,语法:is_workday(date) | is_holiday | 判断是否为节假日/休息日,语法:is_holiday(date) | is_in_lieu | 判断是否为调休日,语法:is_in_lieu(date) | get_holiday_detail | 判断是否为节假日、节假日名称,语法:get_holiday_detail(date)返回值:元组,如,(True, ‘Dragon Boat Festival’),Dragon Boat Festival-端午节 | get_workdays | 传入开始日期和结束日期,得到工作日的日期,语法:get_workdays(start_date,end_date) | get_holidays | 传入开始日期和结束日期,得到休息日的日期,语法:get_holidays(start_date,end_date) |
导入该模块的方法,如,导入is_workday方法
from chinese_calendar import is_workday
3、使用实例
3.1、输入日期,判断这一天是工作日or休息日(包含调休日),并且判断是否为节假日,如果是,输出节日名称。
import datetime
from chinese_calendar import is_workday, is_holiday, is_in_lieu, get_holiday_detail
while True:
time1 = input('请输入XXXX-XX-XX格式的日期:')
time2 = datetime.datetime.strptime(time1, '%Y-%m-%d')
if is_workday(time2):
print(time1+":是工作日")
if is_in_lieu(time2):
print(time1+":是调休日")
if is_holiday(time2):
print(time1 + ":是休息日")
if get_holiday_detail(time2)[1] is not None:
print('节日名:'+get_holiday_detail(time2)[1])
3.2、打印某个时间区间,是工作日的日期 如,打印出2022年5月1日-2022年5月31,是工作日的日期
from datetime import datetime, date
from chinese_calendar import get_workdays
work_day = get_workdays(datetime(2022, 5, 1), datetime(2022, 5, 31))
work_day = [date.strftime(i, '%Y-%m-%d') for i in work_day]
print(work_day)
3.3、打印某个时间区间,是休息日的日期 如,打印出2022年5月1日-2022年5月31,是休息日的日期
from datetime import datetime,date
from chinese_calendar import get_holidays
hol_day = get_holidays(datetime(2022, 5, 1), datetime(2022, 5, 31))
hol_day = [date.strftime(i, '%Y-%m-%d') for i in hol_day]
print(hol_day)
注:上面代码中还用到了datetime模块,主要用来字符串与时间格式数据的转换。
以上就是chinesecalendar模块的用法。 微信关注【一位代码】,了解更多关于python、mysql相关问题解决办法。 -end-
|