首页 > 解决方案 > 检查当前时间是否在周末 Python

问题描述

我正在尝试编写类似以下代码的代码。我希望我的代码在星期五晚上 11 点和星期一凌晨 1 点之前什么都不做,这应该是变量 bgn 和 end 但我没有设法在这两个变量中编写日期和小时。

import datetime

Now = datetime.datetime.now()      

bgn = 'Should be Friday 11 PM'
end = 'Should be Monday 1 AM'

if Now>bgn and Now<end:
    pass
elif:
    ...    

标签: pythondate

解决方案


您应该查看 datetime weekday() 方法,该方法为您提供一周中的天数。

基本上(如果我理解得很好)你不想在这三种不同的情况下做某事:

  1. 如果当天是周六或周日(表示在第 5 天和第 6 天)
  2. 如果当天是星期五(第 4 天),但时间在 23 小时以上
  3. 如果当天是星期一(第 0 天)但小时在 1 小时之前

所以你可以做这样的事情:

import datetime

now = datetime.datetime.now()

if now.weekday() in [5, 6] or (now.weekday() == 4 and now.hour >= 23) or (now.weekday() == 0 and now.hour <= 1):
   pass
else:
   (do stuff)

我很确定你可以做一些更短更聪明的事情,但它可以解决问题。


推荐阅读