python- 工作/休息/调休日怎么精准判断
python的第三方模块chinesecalendar,提供了判断工作日、休息日、节假日的方法。不仅可以判断法定节假日,还可以返回节假日的名称,对调休日也可以做出判断,十分好用。如,打印出2022年5月1日-2022年5月31,是工作日的日期;打印出2022年5月1日-2022年5月31,是休息日的日期。...
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
# 输出2022.5.1-2022.5.31的工作日
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
# 输出2022.5.1-2022.5.31d的节假日
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-
为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐
所有评论(0)