2017-09-11 67 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)