我知道有一些關於在Python和Python中使用timedelta
對象的文章,doc很清晰,足以理解所有的東西。但我無法弄清楚一件事。讓我們假設我們有兩個日期:Python中的Timedeltas
t1 = 'Fri 11 Feb 2078 00:05:21 +0400'
t2 = 'Mon 29 Dec 2064 03:33:48 -1100'
我分析這兩個t1
和使用下面的代碼,以查找在幾秒鐘內它們之間的差別t2
:
def offset(arg):
return timedelta(hours = arg/100, minutes = arg % 100)
def normalize(time, offset, sign):
return time+offset if sign == '-' else time-offset
def main():
t1offset = offset(int(t1[-5:]))
t2offset = offset(int(t2[-5:]))
t1 = normalize(datetime.strptime(t1[:-6],
"%a %d %b %Y %H:%M:%S"), t1offset, t1[-5])
t2 = normalize(datetime.strptime(t2[:-6],
"%a %d %b %Y %H:%M:%S"), t2offset, t2[-5])
if t1>t2:
print (t1-t2).total_seconds()
elif t2>t1:
print (t2-t1).total_seconds()
else:
print 0
正確的答案是|t1-t2| = 413962293
,而我的結果是414041493
。這相差79200秒 - > 22小時。我究竟做錯了什麼?我跳過了什麼,或者我應該考慮如何解決這個問題?
誰投它關閉,這是完全有足夠的代碼可以輕鬆地重現該問題有效的問題。 – Andrey
@Andrey,但它不是重現問題的最小*代碼(請參見[mcve]),因爲OP未能執行基本的二進制搜索調試。 – jonrsharpe
@jonrsharpe代碼不是絕對的小,但足夠小,不完美,但很好理解這個問題。這個問題還不夠嚴重,不能關閉。 – Andrey