2016-08-13 23 views
-1

我有下面這段代碼使用time.strf()來獲取當前時間,並且建築:

interval_time=int(input('how many seconds each interval?')) 
print(time.strftime("%H:%M")) 
while time.strftime("%H:%M")!=str('19:45'): 
    time.sleep(interval_time) 
    winsound.PlaySound("SystemExit",winsound.SND_ALIAS)  
winsound.PlaySound("SystemEnter",winsound.SND_ALIAS) 

的事情是,我知道如何獲得當前時間。我希望它看起來是這樣的:

while *script_first_ran_time*!=*script_first_ran_time+30minutes* 

我知道如何轉換分鐘,但它不斷重新評估目前的時間,再加上30分鐘到它。我如何使初始time.strf()保持不變?

非常感謝!

+0

如果你是羽絨球投票,請解釋爲什麼 – Tak

回答

0

你已經決定通過使用時間的字符串表示來使這個任務變得更加困難。由於這些字符串沒有日期的概念,因此對它們執行與日期相關的操作是很麻煩的。另外,您應該使用專門設計用於處理日期和時間的專用庫,即datetime

樣板代碼應該是這樣的:

​​

這裏,datetime.now返回表示當前時間的特殊對象。 timedelta返回特殊對象,當從datetime實例添加或減去時,返回另一個datetime,根據timedelta的狀態在時間上移位。

另外注意,我從不等於更大的改變你的條件比 - 它會停止處理,即使你不會準確擊中你的時間點(和毫秒級,你會必須非常幸運才能達到這個目標)。

+0

首先,非常感謝你的回答!雖然這是一種不同的方法,但它仍然是一個可教的時刻。我想知道,你說這個任務更難。我如何使用整數的時間? – Tak

+0

您可以重複使用[此答案](http://stackoverflow.com/questions/5998245/get-current-time-in-milliseconds-in-python)以數字形式獲取當前時間戳。不過,我不明白如何使用原始時間戳比使用日期時間模塊更容易。 –

+0

那只是出於好奇,今天已經學到了一件新事物,爲什麼不是另一個?非常感謝你! – Tak