好久不写csdn了。今天水一篇
这两天写东西要用到节假日的判断,找了下官方,好像没找到(官方应该也不大会维护这种关于中国的节假日判断,因为这东西毕竟每年都得维护and吉多·范罗苏姆还是个荷兰人)。但是找了个第三方的:chinese_calendar
GitHub地址:chinese_calendar
判断某年某月某一天是不是工作日/节假日。 支持 2004年 至 2022年,包括 2020年 的春节延长。
pip install chinesecalendar
目前是1.7.2版本,支持到了2022年。
节假日这玩意,得根据国家发布信息来,所以每年都不一样,所以这插件作者每年都会更新,所以我们用的时候也得每年更新。如果不更新,就会发现2022年用的好好的,到了2023年就用不了了。
国务院办公厅关于2022年部分节假日安排的通知
import datetime
# 判断 2018年4月30号 是不是节假日
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
# 或者在判断的同时,获取节日名
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
# 还能判断法定节假日是不是调休
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
# 判断当前日期是否为节假日
from chinese_calendar import is_workday,is_in_lieu
date = datetime.datetime.now().date()
print("today is:", date)
if is_workday(date):
print("是工作日")
else:
print("是节假日")
if is_in_lieu(date):
print('调休')
else:
print('不是调休')