Hallo zusammen,
das unten aufgeführte Skript soll herausfinden, ob die aktuelle Uhrzeit/Wochentag sich innerhalb des Zeitfensters befindet oder nicht. Funktioniert im Prinzip so lange, bis das Zeitfenster über 24:00:00 Uhr hinaus geht. Dann funktioniert es nicht mehr. Hat jemand einen Lösung oder einen Ansatz für mich, wie ich das Problem beseitigen kann?
# Abfrage, ob das Zeitfenster mit Wochentag/Uhrzeit übereinstimmt
import datetime, time
def zeitfenster(zp):
heute=datetime.date.today()
wochentag={0:"Mo", 1:"Di",2:"Mi", 3:"Do", 4:"Fr",5:"Sa", 6:"So"}
zp_liste=[]
zp_liste=zp.split(",")
#Enduhrzeit vor Anfangsuhrzeit abfangen
if zp_liste[0]>zp_liste[1]:
return False
#Prüfen, ob Wochentag in enthalten ist
for i in range(2,len(zp_liste)):
if wochentag[heute.weekday()].lower()==zp_liste[i].lower():
if time.strftime('%H:%M:%S') >= zp_liste[0] and \
time.strftime("%H:%M:%S")<=zp_liste[1]:
return True
return False
if __name__ == "__main__":
#Zeitfenster(Anfangszeit, Endzeit, Wochentage)
if zeitfenster("11:35:00,18:00:00,Mo,Di,Mi,Do,Fr,Sa,So"):
print("Übereinstimmung der aktuellen Zeit mit dem Zeitplan.")
else:
print("Keine Übereinstimmung der aktuellen Zeit mit dem Zeitplan.")
Alles anzeigen
Hier ein Beispiel wann es nicht funktioniert:
Funktionsaufruf zeitfenster("23:00:00,01:00:00,Mo,Di,Mi,Do,Fr,Sa,So"),
aktuelle Uhrzeit ist 23:30:00 Uhr, also im Zeitfenster enthalten, es wird aber False zurückgemeldet
Vielen Dank und sonnige Grüße.
whitechristmas