欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python根据日期判断某日是节假日还是工作日chinese_calendar

程序员文章站 2022-02-19 06:34:12
...

安装包,截止1月27日,最新的版本是1.5.0,支持 2004年 至 2021年。

pip install chinesecalendar

判断某日是节假日还是工作日

import datetime
import chinese_calendar


demo_time = datetime.date(2018, 10, 2) 
# 判断是否是节假日
data_is_holiday = chinese_calendar.is_holiday(demo_time)  # True
# 判断某日是否工作日
data_is_workday = chinese_calendar.is_workday(demo_time)  # False

判断日期是否是节日,如果是节日返回是否休息日和节日名称,不是的话节日名称为None。如果某个周六日是某个节假日的调休,也会返回该节假日的名称

demo_time = datetime.date(2018, 10, 1)
chinese_calendar.get_holiday_detail(demo_time) # (True, 'National Day')
demo_time = datetime.date(2018, 8, 1)
chinese_calendar.get_holiday_detail(demo_time) # (False, None)

获取两个日期之间的节假日或者工作日,返回的结果为所有工作日或者休息日日期的列表。

start_time = datetime.date(2018, 9, 1)
end_time = datetime.date(2018, 9, 15)
chinese_calendar.get_workdays(start_time,end_time)# [datetime.date(2018, 9, 3), datetime.date(2018, 9, 4), datetime.date(2018, 9, 5), datetime.date(2018, 9, 6), datetime.date(2018, 9, 7), datetime.date(2018, 9, 10), datetime.date(2018, 9, 11), datetime.date(2018, 9, 12), datetime.date(2018, 9, 13), datetime.date(2018, 9, 14)]
chinese_calendar.get_holidays(start_time,end_time)# [datetime.date(2018, 9, 1), datetime.date(2018, 9, 2), datetime.date(2018, 9, 8), datetime.date(2018, 9, 9), datetime.date(2018, 9, 15)]

根据日期推算该日期后的第几个工作日的日期,比如2018年9月30日的第一个工作日日期是2018年10月8日,今天是2021年1月27日的话,下一个工作日日期是2021年1月28日

demo_time = datetime.date(2018, 9, 30)
# 按日期推算工作日日期。可以接收两个参数,第一个参数是第几个工作日,第二个是从什么日期开始,不填默认是今天
next_workday = chinese_calendar.find_workday(1) # 2021-01-28
next_workday = chinese_calendar.find_workday(1,demo_time) # 2018-10-08

 

相关标签: python