我有一个字符串列表,其中一个看起来像这样:
'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'
如您所见,在某些情况下,时间可能会跨越午夜。当发生这种情况时,以上面的字符串为例,与该时间相关的日期现在是6月20日而不是6月19日。
我需要编写一个代码来比较' rxup'时间与字符串开头的日期/时间,并确认它是否以及何时增加一天因为它过了午夜(所有相对于开头的日期/时间)。
如果它没有在午夜过夜,那就是同一天,那么我就完成了。但如果它已经过了午夜,我需要将该时间与开头时间之间的差异作为timedelta对象,并将该增量添加到开头时间的副本上。我该怎么做?
答案 0 :(得分:1)
如果时间单调增长,你可以简单地按照字典顺序对它们进行比较。 ' 00:01:17'显然小于23:39:47',所以每次下一个时间戳小于当前时间戳时,你都会增加日期。
答案 1 :(得分: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)