[英]How to get a time interval between two strings?
我有2次以H:M
的形式存儲在單獨的字符串中,我需要了解這兩者之間的差異,並能夠分辨出這等於多少分鍾。 我嘗試使用datetime
和timedelta
,但是我只是一個初學者,我不太了解它是如何工作的。 我每次都遇到屬性錯誤。
所以我有a和b次,而且我必須在幾分鍾內得到它們的差值。
EG 。 if a = 14:08 and b= 14:50
則差異應為42
如何在python中以最簡單的方式做到這一點? 另外,每個步驟我需要使用哪種格式?
我認為差異是42,而不是4(因為14:08和14:50之間有42分鍾)。
如果時間始終包含5個字符長的字符串,那么這很容易。
time1 = '14:08'
time2 = '15:03'
hours = int(time2[:2]) - int(time1[:2])
mins = int(time2[3:]) - int(time1[3:])
print(hours)
print(mins)
print(hours * 60 + mins)
印刷品:
1
-5
55
您可以使用datetime.strptime
而且區別是42不是4 50-8==42
我認為那是一個錯字
from datetime import datetime
a,b = "14:08", "14:50"
#convert to datetime
time_a = datetime.strptime(a, "%H:%M")
time_b = datetime.strptime(b, "%H:%M")
#get timedelta from the difference of the two datetimes
delta = time_b - time_a
#get the minutes elapsed
minutes = (delta.seconds//60)%60
print(minutes)
#42
通過從給定的時間字符串a
和b
減去前者,可以得到從給定的時間字符串a
和b
創建的datetime.timedelta
對象之間的差,並使用total_seconds
方法獲得時間間隔(以秒為單位),您可以將時間間隔除以秒數到60:
from datetime import timedelta
from operator import sub
sub(*(timedelta(**dict(zip(('hours', 'minutes'), map(int, t.split(':'))))) for t in (b, a))).total_seconds() // 60
因此,假設a = '29:50'
和b = '30:08'
,則返回:
18.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.