如果日期改变了增量时间?

时间:2017-09-11 21:02:32

标签: python datetime timedelta

我有一个字符串列表,其中一个看起来像这样:

'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对象,并将该增量添加到开头时间的副本上。我该怎么做?

2 个答案:

答案 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)