**截止文章发布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)
![](https://img-blog.csdnimg.cn/img_convert/8fce916094a644ac9be077b0d16b90de.png)
测试2023春节:
today = datetime.date.today().replace(day=28).replace(month=1)
date = get_pervious_work_day(today)
print(date)
![](https://img-blog.csdnimg.cn/img_convert/561800c7b95842758b13634b18ec9bf0.png)
测试2023劳动节:
today = datetime.date.today().replace(day=4).replace(month=5)
date = get_pervious_work_day(today)
print(date)
![](https://img-blog.csdnimg.cn/img_convert/a074270f100c43099a6d43f7035db881.png)
测试2023国庆节:
today = datetime.date.today().replace(day=7).replace(month=10)
date = get_pervious_work_day(today)
print(date)
![](https://img-blog.csdnimg.cn/img_convert/7cb6e897fadc4b979041d8783f51831e.png)