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

作者:

文章目录
  • 安装 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啊。这个大家感兴趣的可以去看看。
  • 认准文档: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天
  • 这个目前接口有很多个,有免费的也有收费的。 当然我们也可以自己写爬虫来获取国家发布的节假日。然后,对里面的内容做一些解析和处理就行了 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)
  • 大家请注意,使用 holidays 库和 chinesecalendar 库 可能不包含所有中国的公共假期,特别是那些具有地方性的假期或临时宣布的假期。此外,由于中国的假期政策可能会随着时间变化,因此建议定期检查库的更新。当然,我们也能在执行节假日判断前,用代码定期或执行时更新库。 用万年历接口的话,除非网络问题、接口被修改或停止维护了,其它基本OK的。 以上就是基于Python判断节假日的几种方式小结的详细内容,更多关于Python判断节假日的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: Python3自动签到 定时任务 判断节假日的实例 Python设计与实现一个节假日统计器 Python获取中国节假日数据记录入JSON文件 Python统计节假日剩余天数的脚本
  • 目录
    • 1、使用holidays库判断节假日
    • 2、使用chinesecalendar判断节假日
    • 3、调用接口或爬取数据判断节假日
    • 4、结束语

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

    安装 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啊。这个大家感兴趣的可以去看看。

    认准文档: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天
    

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

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

    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)
    

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

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

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

    您可能感兴趣的文章:

    • Python3自动签到 定时任务 判断节假日的实例
    • Python设计与实现一个节假日统计器
    • Python获取中国节假日数据记录入JSON文件
    • Python统计节假日剩余天数的脚本

    站内搜索