【发布时间】:2017-02-04 05:29:39
【问题描述】:
给定这两个变量,我们需要找到一周的开始时间(日期时间):
-
now- 当前日期时间 -
START_DAY- 我们认为是“一周的开始”的一周中的哪一天(0-6,其中 0 是星期一,6 是星期日)
我们可以使用循环,但是对于一个简单的问题来说,这似乎步骤太多了:
week_start = datetime(now.year, now.month, now.day)
while week_start.weekday() != START_DAY:
week_start = week_start - timedelta(days=1)
如果START_DAY 总是0(星期一),这真的很容易:
week_start = datetime(now.year, now.month, now.day) - timedelta(days=now.weekday())
或者总是6(星期日):
week_start = datetime(now.year, now.month, now.day) - timedelta(days=(0 if now.weekday() == START_DAY else now.weekday() + 1))
对于START_DAY 的任何值,计算一周开始的简单方法是什么?
【问题讨论】:
标签: python python-3.x datetime optimization