2017-06-21 10 views
0

Ich möchte mein Programm zu einer bestimmten Zeit jeden Tages starten und beenden. Z.B. beginnt um 10 Uhr und endet um 6 Uhr.Python - 24-Stunden-Format für datetime.now(). Stunde

Die Methode dt.now().hour in range(10,6) scheint nicht zu funktionieren. Ich habe versucht, es zu ändern dt.now().hour in range(22,6) das Ergebnis ist das gleiche. Aber für dt.now().hour in range(2,6) funktioniert es gut.

Python-Code

from datetime import datetime as dt 
from time import time, sleep 

while True: 
    if dt.now().hour in range(10,3): 
     print('time to sleep') 
     sleep(10) 

    else: 
     print('time to work') 
     sleep(10) 
+4

Je besser, was zu tun wäre, das Programm als cronjob und führen Sie es für die Zeit laufen benötigt: https://ole.michelsen.dk/blog/schedule-jobs -mit-crontab-on-mac-osx.html –

Antwort

3

Haben zwei Kontrollen

if dt.now().hour in range(22,24) or dt.now().hour in range(0, 6): 
    print("working") 
else: 
    print("sleeping") 
0

range(10,3) gibt einen leeren Bereich, seit 10> 3. Sie überprüfen müssen, wenn Stunde 0-6 in Bereich 22-24 oder in Reichweite befindet. Eine andere Lösung ist zu überprüfen, ob die Stunde nicht in Bereich 6-22 ist.

Verwandte Themen