У меня есть код, который запускает главную функцию . В этой функции есть while loop
, который должен запускать программу, когда наступит определенное время. Я установил это время в morning
(время начала), evening
(время окончания) переменных. Он находится в цикле while и работает, но только если я запускаю программу в тот день, когда хочу ее использовать. Например: когда я запускаю его вечером в понедельник (20:00) и start
время (переменная morning
) начинается с 8:00 (следующий день), он продолжает цикл
print («Ожидание подходящего времени») <= (делает это) </p>
даже если это время наступит на следующий день. Но это работает, когда я запускаю его на следующий день в 6:00 или около того ...
Может кто-нибудь объяснить мне, почему это происходит?
Вот код
import datetime
from time import sleep
from datetime import date
#variables
now = datetime.datetime.now()
morning = now.replace(hour=8, minute=0, second=0, microsecond=0)
evening = now.replace(hour=16, minute=15, second=0, microsecond=0)
#function for time-setting
def time_in_range(morning, evening, x):
if morning <= evening:
return morning <= x <= evening
else:
return morning <= x or x <= evening
timerange = time_in_range(morning, evening, now)
#main function
def main():
while True:
# Time period check
if date.today().weekday() < 5 and date.today().weekday() >= 0:
dayz = True
else:
dayz = False
if dayz != True:
print("Waiting for the day")
sleep(3600)
continue
now = datetime.datetime.now()
timerange = time_in_range(morning, evening, now)
if timerange != True: # HERE IT MAKES THE TROUBLE
print("Waiting for the right time")
sleep(200)
continue
print("do something")
main()
print("end of code")