【发布时间】:2012-10-02 08:37:48
【问题描述】:
下面的代码应该在上周五 16:00:00 返回。但它返回Friday of previous week。如何解决?
now = datetime.datetime.now()
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4, weeks=-1))
test = test.replace(hour=16,minute=0,second=0,microsecond=0)
更新。我现在使用以下方法 - 这是最好的方法吗?
now = datetime.datetime.now()
if datetime.datetime.now().weekday() > 4:
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4))
else:
test = (now - datetime.timedelta(days=now.weekday()) + timedelta(days=4, weeks=-1))
test = test.replace(hour=16,minute=0,second=0,microsecond=0)
更新2。只是举个例子。假设今天是 2012 年 10 月 5 日。如果当前时间等于或小于 16:00,则应返回 2012 年 9 月 28 日,否则 - 2012 年 10 月 5 日。
【问题讨论】:
-
圣蟹块。拆分你的代码!
-
@LA_ 如果今天是星期五,你希望它如何工作?
-
@bohney,取决于时间。如果 16:00 已经过去,那么应该是今天。否则 - 上一周的星期五。