2017-09-11 103 views
1

我有一個字符串列表,其中有一個是這樣的:如果日期更改,增加時間?

'Thu Jun 18 19:58:02 2015 
...many lines of data... 
txup: 19:59:47 txdown: 20:05:22 
rxup: 21:43:17 rxdown: 22:13:01' 

但另一種可能是這樣的:

'Fri Jun 19 23:12:12 2015 
...many lines of data... 
txup: 23:39:47 txdown: 23:57:22 
rxup: 00:01:17 rxdown: 01:13:01' 

正如你所看到的,在某些情況下,可能時間跨越午夜。當發生這種情況時,使用上面的字符串作爲示例,與該時間關聯的日期現在將是Jun 20而不是Jun 19. 19.

我需要編寫一個代碼來比較'rxup'時間和日期/時間在字符串的開頭,並確認是否以及何時由於午夜過去而增加了一天(全部相對於開始的日期/時間)。

如果它沒有越過午夜,因此是同一天,那麼我就完成了。但是如果它已經越過了午夜,我需要把時間和開始時間之間的差異看作是一個timedelta對象,並將該增量添加到開頭的時間副本上。我將如何做到這一點?

+0

哦,我的生日,吳年!^_ ^ – bipll

回答

1

如果時間單調增長,你可以簡單地比較它們的字典順序。 '00:01:17'明顯小於'23:39:47',所以每次下一個時間戳都小於當前時間戳時,就會遞增日期。

1

假設rxup txdown後總是出現,但不到24小時後,您可以像下面比較一下:

# txdown, rxup - datetimes with respective times, date part doesn't matters 
# associated_date - datetime associated with string 
if rxup.time() < txdown.time(): 
    associated_date += datetime.timedelta(days=1)