2017-06-21 309 views
0

我想在每天的特定時間開始和結束我的程序。例如。從晚上10點開始並於上午6點結束。python - datetime.now()的24小時格式。小時

使用dt.now().hour in range(10,6)的方法似乎不起作用。我試圖將其改爲dt.now().hour in range(22,6),結果是一樣的。但對於dt.now().hour in range(2,6)它工作正常。

Python代碼

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

更好的事情將是運行程序作爲一個cronjob並運行它所需的時間段:https://ole.michelsen.dk/blog/schedule-jobs -with-的crontab-ON-MAC-osx.html –

回答

3

做兩項檢查

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)返回一個空範圍內,因爲10> 3.您需要檢查是否小時是在範圍22-24 在範圍0-6。另一種解決方案是檢查小時是而不是的範圍是6-22。