用python判断指定日期的上一个工作日
时间: 2024-04-16 11:24:30 浏览: 119
要判断指定日期的上一个工作日,可以使用Python的datetime和calendar模块来实现。下面是一个示例代码:
```python
import datetime
import calendar
def get_previous_workday(date):
# 判断date是否为周末,如果是,将date减去相应的天数
if date.weekday() in [5, 6]: # 5表示星期六,6表示星期日
date -= datetime.timedelta(days=date.weekday() - 4)
# 判断date是否为周一,如果是,将date减去3天(上周五为上一个工作日)
if date.weekday() == 0: # 0表示星期一
date -= datetime.timedelta(days=3)
else:
date -= datetime.timedelta(days=1)
return date
# 指定日期
date = datetime.datetime(2022, 3, 1) # 格式为年-月-日
# 获取上一个工作日
previous_workday = get_previous_workday(date)
print("指定日期的上一个工作日为:", previous_workday.strftime("%Y-%m-%d"))
```
在上述代码中,我们首先定义了一个`get_previous_workday`函数,该函数接收一个日期参数`date`。函数中使用了`weekday()`方法来判断日期的星期几,如果是周末(星期六或星期日),则将日期减去相应的天数。如果是周一,将日期减去3天,否则将日期减去1天。最后返回上一个工作日的日期。
然后,我们指定一个日期(这里是2022年3月1日)作为示例日期,并调用`get_previous_workday`函数来获取上一个工作日的日期。最后打印出结果。
运行代码,输出结果为:
```
指定日期的上一个工作日为: 2022-02-28
```
这里的上一个工作日是2022年2月28日,因为2022年3月1日是周二,所以上一个工作日是2022年2月28日(周一)。
阅读全文