基于Python判断节假日的几种方式小结

 更新时间:2025年12月05日 09:27:50   作者:陆理手记  
本文介绍了如何使用Python库如holidays和chinesecalendar在信息安全巡检中判断节假日,包括工作日、法定节假日以及调休情况,同时提到了可能存在的局限性,如特定假期的覆盖不足和政策变动需要更新库,需要的朋友可以参考下

最近在推进信息安全巡检的工作,按公司制度要求和信息安全标准,要求按时对硬件设备、网络、机房、应用系统、数据库等等做巡检工作。为了保证达到信息安全的目标,要求在每周四和节假日的前一天对各类设备和系统进行巡检。

1、使用holidays库判断节假日

安装 holidays库

pip install holidays

使用它,Use it!~ 不要太简单好吗?

from datetime import date

cn_holidays = holidays.China()

def is_holiday(date):
    return date in cn_holidays

print(is_holiday(date(2024,5,1)))

直接打印出来个Labor Day, WTF, 看来对中文的支持不算友好?当然!有老哥已经开发出来个Holiday-CN, 666啊。这个大家感兴趣的可以去看看。

2、使用chinesecalendar判断节假日

认准文档:check if some day is holiday in China

判断日期是否为工作日:chinese_calendar 提供了 is_workday() 函数,可以判断指定日期是否为工作日,包括周末、法定节假日等。

判断日期是否为节假日:chinese_calendar 提供了 is_holiday() 函数,可以判断指定日期是否为中国的法定节假日。

import datetime

# 判断 2024年5月1号 是不是节假日
from chinese_calendar import is_holiday, is_workday
labor_day = datetime.date(2024, 5, 1)
print(is_workday(labor_day))
print(is_holiday(labor_day))

获取节假日信息:chinese_calendar 提供了一系列函数用于获取节假日的详细信息,如 get_holiday_detail() 可以获取指定日期的节假日名称、类型和放假天数等信息。

# 或者在判断的同时,获取节日名
import chinese_calendar as calendar  # 也可以这样 import
on_holiday, holiday_name = calendar.get_holiday_detail(labor_day)
print(on_holiday)
print(holiday_name)
print(calendar.Holiday.labour_day.value)

# 还能判断法定节假日是不是调休
import chinese_calendar
print(chinese_calendar.is_in_lieu(datetime.date(2024, 5, 6)))
print(chinese_calendar.is_in_lieu(datetime.date(2024, 5, 3)))

计算两个日期之间的工作日天数:chinese_calendar 提供了 get_workdays() 函数,用以获取两个日期之间的工作日,变一下可以计算两个日期之间的工作日天数。

# 计算两个工作日之间的天数
print("距离五一你还要干%s天" % len(chinese_calendar.get_workdays(datetime.date(2024,4,15), datetime.date(2024,5,1))))

## 距离五一你还要干13天

3、调用接口或爬取数据判断节假日

这个目前接口有很多个,有免费的也有收费的。

当然我们也可以自己写爬虫来获取国家发布的节假日。然后,对里面的内容做一些解析和处理就行了

import requests
from bs4 import BeautifulSoup

#获取国务院节假日安排,包括调休
def getChineseHolidays(year): 
    #2024年放假安排url
    url = "https://www.gov.cn/zhengce/content/202310/content_6911527.htm"
     # Get方式获取网页数据
    rep = requests.get(url) 
    rep.encoding = 'utf-8'
    soup = BeautifulSoup(rep.text, 'html.parser')
    pList = soup.find_all('p')
    for item in pList:
        p = item.text
        if ':' in p and '放假' in p:   #找出节日对应的几行内容
            print(p)
            
if __name__ == '__main__':
    getChineseHolidays(2024)

4、结束语

大家请注意,使用 holidays 库和 chinesecalendar 库 可能不包含所有中国的公共假期,特别是那些具有地方性的假期或临时宣布的假期。此外,由于中国的假期政策可能会随着时间变化,因此建议定期检查库的更新。当然,我们也能在执行节假日判断前,用代码定期或执行时更新库。

用万年历接口的话,除非网络问题、接口被修改或停止维护了,其它基本OK的。

以上就是基于Python判断节假日的几种方式小结的详细内容,更多关于Python判断节假日的资料请关注脚本之家其它相关文章!

相关文章

  • Python中执行存储过程及获取存储过程返回值的方法

    Python中执行存储过程及获取存储过程返回值的方法

    这篇文章主要介绍了Python中执行存储过程及获取存储过程返回值的方法,结合实例形式总结分析了Python调用存储过程的常用方法与相关操作注意事项,需要的朋友可以参考下
    2017-10-10
  • Python中pillow知识点学习

    Python中pillow知识点学习

    本文给大家通过一篇Python中pillow知识点学习的笔记内容让大家对pillow有一个学习方向的有一个认识,有兴趣的朋友学习下。
    2018-04-04
  • Python使用psutil获取系统信息

    Python使用psutil获取系统信息

    这篇文章介绍了Python使用psutil获取系统信息的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • win10下安装Anaconda的教程(python环境+jupyter_notebook)

    win10下安装Anaconda的教程(python环境+jupyter_notebook)

    Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。这篇文章主要介绍了win10下安装Anaconda(python环境+jupyter_notebook),需要的朋友可以参考下
    2019-10-10
  • Python量化交易详细简介

    Python量化交易详细简介

    这篇文章主要介绍了Python量化交易详细,  算法交易是使用自动化系统来执行交易,这些交易是通过特定的算法以预测的方式执行的没有任何人为干预。依据数学模型对大数据进行概率分析,使得长期收益期望最大化,下文详细叙述,需要的朋友可以参考一下
    2022-03-03
  • 从入门到实战详解Python循环嵌套的完整指南

    从入门到实战详解Python循环嵌套的完整指南

    循环嵌套是Python编程中一个既基础又强大的工具,让程序能够处理多维数据,本文将通过实际案例和代码演示带大家轻松掌握循环嵌套的核心用法
    2025-08-08
  • numpy如何按条件给元素赋值np.where、np.clip

    numpy如何按条件给元素赋值np.where、np.clip

    这篇文章主要介绍了numpy如何按条件给元素赋值np.where、np.clip问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • python如何去除字符串中不想要的字符

    python如何去除字符串中不想要的字符

    这篇文章主要为大家详细介绍了python如何去除字符串中不想要的字符,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python读取SQLite3数据库中的文件并获取列名/字段名

    Python读取SQLite3数据库中的文件并获取列名/字段名

    这篇文章主要为大家详细介绍了如何使用Python读取SQLite3数据库中的文件并获取列名与字段名,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-07-07
  • 10个让你效率翻倍的Python自动化脚本分享

    10个让你效率翻倍的Python自动化脚本分享

    在当今快节奏的工作环境中,效率是成功的关键,无论是数据处理、文件管理、网络操作还是日常办公,重复性任务不仅消耗时间,还容易出错,本文将介绍10个实用的Python自动化脚本,有需要的可以参考下
    2025-10-10

最新评论