python 如何判断节假日
在 Python 中判断节假日可以采用以下两种方法:
- 使用第三方库
可以使用第三方库 workalendar 来判断节假日。首先需要安装该库,可以使用 pip 命令进行安装:
pip install workalendar
然后可以使用以下代码来判断某个日期是否是节假日:
from workalendar.asia import China
from datetime import date
cal = China()
# 判断日期是否为节假日
is_holiday = cal.is_holiday(date(2021, 10, 1))
print(is_holiday)
其中 China 是 workalendar 库中的中国日历,is_holiday 方法用于判断某个日期是否是节假日。
- 使用 API 接口
可以使用第三方 API 接口来判断节假日。例如,可以使用国务院办公厅公布的节假日安排查询接口,该接口返回的 JSON 数据中包含了节假日信息。
以下是一个使用该接口判断某个日期是否是节假日的示例代码:
import requests
# 获取节假日信息
def get_holiday_info(year):
url = 'http://timor.tech/api/holiday/info/{}'.format(year)
resp = requests.get(url)
if resp.status_code == 200:
return resp.json()
else:
return None
# 判断日期是否为节假日
def is_holiday(dt):
year = dt.year
holiday_info = get_holiday_info(year)
if holiday_info is None:
return False
for holiday in holiday_info:
if holiday['holiday'] == dt.strftime('%Y-%m-%d'):
return True
return False
# 测试代码
print(is_holiday(date(2021, 10, 1))) # True
print(is_holiday(date(2021, 10, 2))) # True
print(is_holiday(date(2021, 10, 3))) # True
print(is_holiday(date(2021, 10, 4))) # True
print(is_holiday(date(2021, 10, 5))) # True
print(is_holiday(date(2021, 10, 6))) # True
print(is_holiday(date(2021, 10, 7))) # True
print(is_holiday(date(2021, 10, 8))) # True
print(is_holiday(date(2021, 10, 9))) # False
该示例代码中使用了 requests 库来发送 HTTP 请求,获取节假日信息。get_holiday_info 函数用于获取某年的节假日信息,is_holiday 函数用于判断某个日期是否是节假日。在 is_holiday 函数中,先调用 get_holiday_info 函数获取节假日信息,然后遍历节假日信息,判断给定日期是否为节假日
原文地址: https://www.cveoy.top/t/topic/f26X 著作权归作者所有。请勿转载和采集!