Я пытаюсь выполнить функцию в tkinter, поскольку хочу, чтобы функция работала в фоновом режиме. Я выполнил следующий код. Также я пытаюсь выполнить его внутри while l oop, но он не зацикливается.
t1 = dt.time(hour = 13, minute= 24)
t2 = dt.time(hour= 13, minute= 4)
timetable = [t1, t2]
root = Tk()
def Alarm():
current_time = now_time.strftime("%H:%M:%S")
print(current_time)
print(timetable[0])
while True:
if timetable[0] <= dt.datetime.now().time():
print("Its time")
break
Alarm()
root.mainloop()
операторы печати предназначены только для тестирования. Лог c, который я использую в будильнике, также не работает должным образом, поскольку он сообщает: «Его время» даже после того, как время прошло. Я пробовал следующие методы раньше.
метод 1:
for i in reversed(timetable):
i_time = i
#print (i_time)
#print(now_time.strftime("%H:%M"))
while True:
if dt.datetime.now().time() < i_time:
#if i_time <= dt.datetime.now().time():
print("Its Time")
break
метод 2:
for i in timetable:
current_time = dt.datetime.now().time()
alarm_time = i
while True:
if current_time < alarm_time:
if current_time <= alarm_time:
print("its time", alarm_time)
Использование для l oop было моей первой целью, но для l oop не выполняется должным образом. Он получает только 1-й элемент, а не go ко второму элементу, даже если первый элемент прошел, поэтому я решил go с помощью оператора if, elif, else