在 Python 中判断节假日可以采用以下两种方法:

  1. 使用第三方库

可以使用第三方库 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)

其中 Chinaworkalendar 库中的中国日历,is_holiday 方法用于判断某个日期是否是节假日。

  1. 使用 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 函数获取节假日信息,然后遍历节假日信息,判断给定日期是否为节假日

python 如何判断节假日

原文地址: https://www.cveoy.top/t/topic/f26X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录