我需要从当前日期中减去个工作日。
我现在有一些代码需要总是在最近的工作日运行。如果我们是周一到周五,那可能是今天,但如果是周六或周日,我需要把它放回周末之前的周五。我现在有一些相当笨拙的代码来执行此操作:
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在工作日而不是日历日工作吗?
用熊猫!
因为今天是9月26日星期四,这将为您提供以下输出:
如果您愿意安装额外的库,似乎有几个选项。
本文描述了用dateutil定义工作日的方法。
http://coding.derkeiler.com/Archive/Python/comp.lang.python/2004-09/3758.html
BusinessHours允许您自定义假日列表等,以定义您的工作时间(以及延长的工作日)。
http://pypi.python.org/pypi/BusinessHours/
光盘制作者:我是作者。。。
我写了一个软件包来计算商业日期。您可以使用自定义周规格和假日。
我在处理财务数据时遇到了这个问题,没有发现任何可用的解决方案特别容易,所以我写了一个。
希望这对其他人有用。
https://pypi.python.org/pypi/business_calendar/
相关问题 更多 >
编程相关推荐