2013-09-10 4 views
0

Я хочу достичь заданного действия, когда время между xx и yy.Действие между определенным временем

(Использование 24-часового формата)

Ex.

  1. Когда час и минута выше, чем 23:30 и ниже, чем 6:15, то выполнения указанных действий.
  2. Когда час и минута выше, чем 06:15 и ниже, чем 9:00, то выполнения указанных действий.
  3. Когда час и минута выше, чем 09:00 и ниже, чем 23:30, то выполнения указанных действий.

Когда есть я пробовал:

self.data = 0 
localtime = time.strftime("%H%M", time.localtime()) 
localtime = int(localtime) 
if localtime >= 2330 and localtime < 615 and self.data != 1: 
    [..] //running certain action 
    self.data = 1 
elif localtime >= 615 and localtime < 900 and self.data != 2: 
    [..] //running certain action 
    self.data = 2 
elif localtime >= 900 and localtime < 2330 and self.data != 3: 
    [..] //running certain action 
    self.data = 3 

Как вы можете видеть, единственная проблема с моим кодом, что localtime не может быть выше чем 2330 и ниже чем 615 сразу , и так далее. Единственная другая идея, которую я получил, это создать массив со всеми 24 часами и указать определенное действие таким образом ... но может быть, другой способ добиться того, чего я хочу?

+2

мне кажется, как вы хотели бы использовать 'or' для первого условия, а не' and' – Julius

+0

Малого синтаксиса комментария: Вы можете использовать 'если х sberry

+0

@Julius Да, кажется, теперь легко и смешно ... Я не знаю, почему я не подумал об этом ... Спасибо! – Lucas

ответ

1

Возможно использование or вместо and?

if (localtime >= 2330 or localtime < 615) and self.data != 1: 

или

if localtime >= 615 and localtime < 900: 
    if self.data != 2 
     [..] //running certain action 
     self.data = 2 
elif localtime >= 900 and localtime < 2330: 
    if self.data != 3 
     [..] //running certain action 
     self.data = 3 
else: 
    if self.data != 1 
     [..] //running certain action 
     self.data = 1 
Смежные вопросы