最近的Python工作日

问题描述

使用熊猫!

import datetime
import pandas as pd
# BDay is business day, not birthday...
from pandas.tseries.offsets import BDay

today = datetime.datetime.today()
print(today - BDay(4))

由于今天是9月26日,星期四,因此您将获得以下输出

datetime.datetime(2013, 9, 20, 14, 8, 4, 89761)

解决方法

我需要从当前日期减去 工作日

我目前有一些代码,需要始终在最近的工作日运行。如果今天是星期一至星期五,则可能是今天,但是如果是星期六或星期日,则需要将其设置回周末之前的星期五。我目前有一些
笨拙的 代码可以做到这一点:

 lastBusDay = datetime.datetime.today()
 if datetime.date.weekday(lastBusDay) == 5:      #if it's Saturday
     lastBusDay = lastBusDay - datetime.timedelta(days = 1) #then make it Friday
 elif datetime.date.weekday(lastBusDay) == 6:      #if it's Sunday
     lastBusDay = lastBusDay - datetime.timedelta(days = 2); #then make it Friday

有没有更好的办法?

我可以告诉timedelta在工作日而不是日历日工作吗?

相关问答

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
JavaMail问题:无法将命令发送到SMTP主机