x时间范围内(24小时时间格式)

2024-06-26 03:49:05 发布

您现在位置:Python中文网/ 问答频道 /正文

在给定的时间范围内获取if的最佳实践。在

当前时间:22:00
时间框架(轮班开始、结束时间):

00:00 - 08:00
04:00 - 12:00
08:00 - 16:00
12:00 - 20:00
16:00 - 00:00
20:00 - 04:00

使用逻辑:

^{pr2}$

不太管用,因为如果时间是22:00,时间不会少于04:00。 使用或将不工作,从那时起22将超过00:00,这是不对的。在

呃,我不知道是因为缺少咖啡因还是什么,但我就是不能把我的头绕过去。。。在


Tags: 框架if时间逻辑轮班咖啡因pr2
2条回答

你必须记住,如果最后时刻<;startHour,它实际上是在另一天,即比它所说的晚24小时。同样地,在这个范围内的一个小时内,它可能在任何一天,所以如果它是<;startHour,它可能在第二天。在

if currentHour < startHour:
   currentHour += 24
if endHour < startHour:
   endHour += 24

if currentHour >= startHour and currentHour <= endHour:
   //...code

如果00:00是时间范围的结束时间,则将其设为24:00。这将解决使您的if语句按预期方式工作。在

我的错:这样做

if currentHour >= startHour and currentHour <= endHour or currentHour <= startHour and currentHour >= endHour :

编辑:这将生成以下内容

print cur, start, end, logic1, logic2
23 8 0 False False
23 20 12 False False
23 0 20 False False
23 12 4 False False
23 8 16 False False
23 16 8 False False

相关问题 更多 >