【发布时间】:2021-04-01 07:38:32
【问题描述】:
我需要找到最后一个工作日(不考虑节假日)。有没有比我目前使用的更优雅/更强大的实现方式?
from datetime import date
b = date.today() - timedelta(days=1)
while b.weekday()>=5:
b = b - timedelta(days=1)
【问题讨论】:
-
上个工作日是什么意思?星期五?星期天?
-
周一至周五最后一天。
-
对不起,可能是我,但我不明白:D 最后是什么?月,年?
-
给定一个日期,我需要找到最后一个工作日。 IE。如果是周日,那么周五,如果是周三,那么周二,如果是周一,那么周五。
-
@JaviTorre,那么效率并不重要,因此您可以牺牲它来换取可读性和清晰的意图。我认为您的解决方案很明确。 Bas Swinckels 的回答更优雅一些。 duplicate 中的查找表方法是最有效的,但有点神奇,不多,很明显发生了什么,但它确实为效率牺牲了一点清晰度。