有人可以为此考虑一个优雅的衬板吗?
我的尝试:
dt.datetime.today() if dt.datetime.today().isoweekday() in range(1, 6) else 'date of last friday?'
答案 0 :(得分:1)
我希望有两行,尽管可能是1行。原因是如果您两次调用dt.datetime.today(),那么(如果在午夜之前运行一秒钟的话)您将有两个(非常小的)机会得到两个不同的答案。同样,存储值可能比两次调用函数更有效。
import datetime as dt
thisday = dt.datetime.today().date()
thisday -= dt.timedelta(days=max(0,thisday.weekday()-4,0))
在星期六weekday()返回5,在星期日返回6,因此我们分别减去1或2天。在其他日子,weekday()-4为零或更小,因此max函数返回零,并且不减去任何内容。