两个日期之间的时差并以每小时分钟数显示结果

时间:2020-02-06 23:18:17

标签: python datetime

我想对两个日期之间的总时间进行计时,还希望它们每小时进行一次安排,例如

>>> import datetime
>>> d1 = "2020-02-04T05:50:00.000+0000"
>>> d2 = "2020-02-05T12:33:00.000+0000"

>>> d1 = datetime.datetime.strptime(d1[:10]+' '+d1[11:19], '%Y-%m-%d %H:%M:%S')
>>> print (d1)
2020-02-04 05:50:00
>>> d2 = datetime.datetime.strptime(d2[:10]+' '+d2[11:19], '%Y-%m-%d %H:%M:%S')
>>> print (d2)
2020-02-05 12:33:00

>> (d2 - d1).total_seconds() / 60
1843.0

它给了我两个日期之间的总分钟数,但是我真正想要的是例如每小时安排分钟数,

10、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60、60 ,60、60、60、60、60、60、60、33

在上述第5小时内只有10分钟,第6小时有60分钟,..,而第12小时有33分钟。

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找第一个小时剩余的分钟,经过的整个小时以及最后一个小时的分钟?

鉴于这些步骤,您可以使用:

import datetime
from math import floor

def list_minutes_per_h(dt1, dt2):
    first = 60 - d1.minute
    last = d2.minute
    full_h = floor((dt2 - dt1).seconds / 60 / 60)
    return [first] + [60] * full_h + [last]