enter time-1 // eg 01:12
enter time-2 // eg 18:59
calculate: time-1 to time-2/12
// i.e time between 01:12 to 18:59 divided by 12
它如何在Python中完成。我是初學者,所以我真的不知道從哪裏開始。計算時間1到時間2之間的時間?
編輯添加:我不想要一個計時器。用戶手動輸入時間1和時間2。
在此先感謝您的幫助。
enter time-1 // eg 01:12
enter time-2 // eg 18:59
calculate: time-1 to time-2/12
// i.e time between 01:12 to 18:59 divided by 12
它如何在Python中完成。我是初學者,所以我真的不知道從哪裏開始。計算時間1到時間2之間的時間?
編輯添加:我不想要一個計時器。用戶手動輸入時間1和時間2。
在此先感謝您的幫助。
該datetime
和timedelta
類從內置的datetime
模塊是你所需要的。
from datetime import datetime
# Parse the time strings
t1 = datetime.strptime('01:12','%H:%M')
t2 = datetime.strptime('18:59','%H:%M')
# Do the math, the result is a timedelta object
delta = (t2 - t1)/12
print(delta.seconds)
假設用戶正在輸入的字符串等"01:12"
,需要轉換(以及有效)這些字符串到的分鐘數,因爲00:00
(例如,"01:12"
是1*60+12
,或72分鐘),然後再減去一個從另一個。然後,您可以將差值以分鐘爲單位轉換回hh:mm
形式的字符串。
最簡單,最直接的可能是這樣的:
def getime(prom):
"""Prompt for input, return minutes since midnight"""
s = raw_input('Enter time-%s (hh:mm): ' % prom)
sh, sm = s.split(':')
return int(sm) + 60 * int(sh)
time1 = getime('1')
time2 = getime('2')
diff = time2 - time1
print "Difference: %d hours and %d minutes" % (diff//60, diff%60)
例如,一個典型的運行可能是:
$ python ti.py
Enter time-1 (hh:mm): 01:12
Enter time-2 (hh:mm): 18:59
Difference: 17 hours and 47 minutes
+1,因爲與使用datetime和timedelta相比,這是學習python的人更好的方法。我更喜歡比's','sh'和'sm'更具表現力的變量名稱。 Alex,爲什麼要使用變量'prom'?爲什麼不用參數調用函數? – 2009-12-27 11:30:09
@Raja,呵呵,我的意思是在兩種情況下給出不同的提示,但後來我忘了在提示中使用'prom' - 修正了。至於變量名,對於極小範圍的變量,很小的名字是合適的 - 那些已經被教過來命名這樣的2行變量變量'stringAsInputByTheUser','hours_in_string_form'等的類,並且從未接觸過這個重要的變量關於範圍的區分,應該開始接觸到這個問題。 – 2009-12-27 15:36:09
delta =(t2 - t1)/ 12 TypeError:不支持的操作數類型爲/:'datetime.timedelta'和'int' – 3zzy 2009-12-27 05:49:11
python 2.6中可以使用 但是,您始終可以將timedelta對象轉換爲整數並進行如下計算:delta.seconds/12 – iamamac 2009-12-27 06:40:25