python 利用chinese_calendar 获取上一个工作日日期

文章展示了如何使用`chinese_calendar`库的`is_workday`函数来判断日期是否为工作日,并定义了一个递归函数`get_previous_work_day`来获取给定日期前一个工作日。分别对周末和2023年的春节、劳动节、国庆节进行了测试,代码运行顺利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**截止文章发布chinese_calendar版本为1.8.0,大约在每年的11月份更新次年的节假日新版本

import datetime
from chinese_calendar import is_workday


def get_pervious_work_day(day: datetime):
    """获取上一个工作日"""
    day = day - datetime.timedelta(days=1)
    if is_workday(day):
        return day
    return get_pervious_work_day(day)

测试周六日:

today = datetime.date.today().replace(day=20)
date = get_pervious_work_day(today)
print(date)

测试2023春节:

today = datetime.date.today().replace(day=28).replace(month=1)
date = get_pervious_work_day(today)
print(date)

测试2023劳动节:

today = datetime.date.today().replace(day=4).replace(month=5)
date = get_pervious_work_day(today)
print(date)

测试2023国庆节:

today = datetime.date.today().replace(day=7).replace(month=10)
date = get_pervious_work_day(today)
print(date)

Everything is going smoothly.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值