您现在的位置是:首页 > 编程 > 

chinesecalendar:判断日期是不是工作日

2025-07-27 06:47:14
chinesecalendar:判断日期是不是工作日 工作与学习中,有个场景需要判断指定日期是不是工作日,例如自动化办公工作日自动发邮件,量化交易判断是否为交易日等等, 因此我们需要能准确判断给的日期是不是工作日,Python中一般使用模块chinesecalendar来解决这个问题。网友自己维护代码语言:javascript代码运行次数:0运行复制from datetime import dat

chinesecalendar:判断日期是不是工作日

工作与学习中,有个场景需要判断指定日期是不是工作日,例如自动化办公工作日自动发邮件,量化交易判断是否为交易日等等, 因此我们需要能准确判断给的日期是不是工作日,Python中一般使用模块chinesecalendar来解决这个问题。

网友自己维护

代码语言:javascript代码运行次数:0运行复制
from datetime import datetime

# 休:正常工作日(周一至周五)放假日期
holidays_exception = [
    '20200101',  # 元旦,周三
    '20200122',  # 如:公司提前放假
    '2020012',  # 如:公司提前放假
    '20200124',  # 除夕,周五
    '20200127',  # 春节,周一
    '20200128',  # 春节
    '20200129',  # 春节
    '2020010',  # 春节,周四
    '2020011',  # 新冠疫情国务院放假
    '20200201',  # 新冠疫情国务院放假
    '20200406',  # 清明,周一
    '20200501',  # 劳动节,周五
    '20200504',  # 劳动节,周一
    '20200505',  # 劳动节,周二
    '20200625',  # 端午,周二
    '20200626',  # 端午,周二
    '20201001',  # 国庆,周四
    '20201002',  # 国庆,周五
    '20201005',  # 国庆,周一
    '20201006',  # 国庆,周二
    '20201007',  # 国庆,周三
    '20201008',  # 国庆,周四
]

# 班:正常周末(周周五)上班日期
workdays_exception = [
    '20200201',  # 春节, 周六
    '20200426',  # 劳动节, 周日
    '20200509',  # 劳动节, 周六
    '20200628',  # 端午, 周日
    '20200927',  # 国庆,周六
    '20201010',  # 国庆,周六
]

def is_workday(day=one):
    """
        Args:
            day: 日期, 默认为今日

        Returns:
            True: 上班
            False: 放假
    """
    # 如果不传入参数则为今天
    today = ()
    # logger.info(today)
    day = day or today

    week_day = datetime.weekday(day) + 1  # 今天星期几(星期一 = 1,周日 = 7)
    is_work_day_in_week = week_day in range(1, 6)  # 这周是不是非周末,正常工作日, 不考虑调假
    day_str = f'{day.year}{str().zfill(2)}{str(day.day).zfill(2)}'
    if day_str in workdays_exception:
            return True
        elif day_str in holidays_exception:
            return False
        elif is_work_day_in_week:
            return True
        else:
            return False

def is_holiday(day=one):
    # 如果不传入参数则为今天
    today = ()
    day = day or today
    if is_workday(day):
        return False
    else:
        return True

# 判断指定日期

is_workday(datetime(2020, 8, 1)) # 不是工作日,False
is_holiday(datetime(2020, 8, 1)) # 是休假日,True

# 判断当天
is_workday() # 是不是工作日,True 为是
is_holiday() # 是不是休假日,True 为是

安装

官方文档:/

pip install chinesecalendar

使用

代码语言:javascript代码运行次数:0运行复制
import datetime
from chinese_calendar import is_workday


# 判断是否为工作日
date = datetime.().date()

date2 = datetime.date(202, 9, 25)

if is_workday(date2):
    print("是工作日")
else:
    print("是休息日")
    
# 判断是否为调休日
from chinese_calendar import is_in_lieu

print(is_in_lieu(date2))

来自: 每日一模块:chinesecalendar

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-05-09,如有侵权请联系 cloudcommunity@tencent 删除工作量化官方文档自动化datetime

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1170190.html

相关标签:无
上传时间: 2025-07-21 07:40:01
留言与评论(共有 16 条评论)
本站网友 膀胱癌
16分钟前 发表
周六 '20201010'
本站网友 无反相机
1分钟前 发表
return False elif is_work_day_in_week
本站网友 侨城尚寓
27分钟前 发表
# 国庆
本站网友 晋城租房网
2分钟前 发表
每日一模块:chinesecalendar 本文参与 腾讯云自媒体同步曝光计划
本站网友 龙城二手房
22分钟前 发表
# 劳动节
本站网友 额头表情纹
3分钟前 发表
# 劳动节
本站网友 鱼油什么时候吃
6分钟前 发表
周四 ] # 班:正常周末(周周五)上班日期 workdays_exception = [ '20200201'
本站网友 硼砂的作用
22分钟前 发表
分享自作者个人站点/博客
本站网友 肝病的治疗
13分钟前 发表
9
本站网友 百度新闻首页
4分钟前 发表
8
本站网友 环境影响评价公众参与暂行办法
7分钟前 发表
# 新冠疫情国务院放假 '20200406'
本站网友 泰州人力
25分钟前 发表
print("是工作日") else
本站网友 沁和能源
6分钟前 发表
周五 '20200127'
本站网友 紧缩
11分钟前 发表
# 如:公司提前放假 '20200124'
本站网友 黄馨祥
25分钟前 发表
周三 '20200122'