如何查看星期日 5:30PM 和星期五 5:30PM 之间的时间?
How to check it's between Sunday 5:30PM and Friday 5:30PM?
如何检查当前时间是否在周日 5:30 下午和周五 5:30 下午之间?
我可以单独找到日期和时间范围,但我认为时间必须与日期结合使用。
import datetime
import time
now = datetime.datetime.now()
if 0 <= now.weekday() <= 4:
print ("It's a weekday!")
if time(17, 30) <= now.time() <= time(17, 30):
print "and it's in range"
您可以检查以下3个条件:
- 今天不是星期六
- 要么不是星期五,要么时间早于17:30
- 要么不是星期天,要么时间在17:30
之后
在代码中,这相当于:
from datetime import datetime, time
now = datetime.now()
if (now.weekday != 5
and (now.weekday != 4 or now.time() <= time(17, 30))
and (now.weekday != 6 or now.time() >= time(17, 30))):
print("In range!")
您可以简单地获取 5:30pm 最近星期日的日期时间,然后检查它是否恰好在 5 天内:
import datetime
now = datetime.datetime.now()
last_sunday = next((now - i * datetime.timedelta(days=1)) for i in range(7) if (now - i * datetime.timedelta(days=1)).weekday() == 6)
last_sunday_at_530 = datetime.datetime(year=last_sunday.year, month=last_sunday.month, day=last_sunday.day, hour=17, minute=30)
if (now - last_sunday_at_530) < datetime.timedelta(days=5):
print("now is between Sunday at 5:30pm and Friday at 5:30pm")
else:
print("Now is after 5:30pm on Friday but before Sunday at 5:30pm
如果您想反向查看(周五之后但周日之前),那么您可以简单地从 last_friday
开始,仅向前计算两天。
一天中的哪个时间在范围内取决于日期:
- 周日,5:30 下午之后的时间。
- 周一到周四,时间不限。
- 星期五,5:30之前的时间。
这导致以下代码:
import datetime
now = datetime.datetime.now()
d = now.weekday()
t = now.time()
if (
d == 6 and t >= datetime.time(17, 30) # Sunday
or 0 <= d <= 3 # Monday–Thursday
or d == 4 and t <= datetime.time(17, 30) # Friday
):
print("In range")
如何检查当前时间是否在周日 5:30 下午和周五 5:30 下午之间?
我可以单独找到日期和时间范围,但我认为时间必须与日期结合使用。
import datetime
import time
now = datetime.datetime.now()
if 0 <= now.weekday() <= 4:
print ("It's a weekday!")
if time(17, 30) <= now.time() <= time(17, 30):
print "and it's in range"
您可以检查以下3个条件:
- 今天不是星期六
- 要么不是星期五,要么时间早于17:30
- 要么不是星期天,要么时间在17:30 之后
在代码中,这相当于:
from datetime import datetime, time
now = datetime.now()
if (now.weekday != 5
and (now.weekday != 4 or now.time() <= time(17, 30))
and (now.weekday != 6 or now.time() >= time(17, 30))):
print("In range!")
您可以简单地获取 5:30pm 最近星期日的日期时间,然后检查它是否恰好在 5 天内:
import datetime
now = datetime.datetime.now()
last_sunday = next((now - i * datetime.timedelta(days=1)) for i in range(7) if (now - i * datetime.timedelta(days=1)).weekday() == 6)
last_sunday_at_530 = datetime.datetime(year=last_sunday.year, month=last_sunday.month, day=last_sunday.day, hour=17, minute=30)
if (now - last_sunday_at_530) < datetime.timedelta(days=5):
print("now is between Sunday at 5:30pm and Friday at 5:30pm")
else:
print("Now is after 5:30pm on Friday but before Sunday at 5:30pm
如果您想反向查看(周五之后但周日之前),那么您可以简单地从 last_friday
开始,仅向前计算两天。
一天中的哪个时间在范围内取决于日期:
- 周日,5:30 下午之后的时间。
- 周一到周四,时间不限。
- 星期五,5:30之前的时间。
这导致以下代码:
import datetime
now = datetime.datetime.now()
d = now.weekday()
t = now.time()
if (
d == 6 and t >= datetime.time(17, 30) # Sunday
or 0 <= d <= 3 # Monday–Thursday
or d == 4 and t <= datetime.time(17, 30) # Friday
):
print("In range")