Разница между двумя датами и показывать результат в минутах в час - PullRequest
0 голосов
/ 07 февраля 2020

Я хочу рассчитать общее время между двумя датами, а также хочу, чтобы они организовали в час, например,

>>> 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, 33

Сверху 5-й час имеет только 10 минут, 6-й имеет 60 минут, ...., а 12-й имеет 33 минуты.

1 Ответ

1 голос
/ 07 февраля 2020

Похоже, вы ищете минуты, оставшиеся в первом часе, полные часы, прошедшие между ними, и минуты, прошедшие за последний час?

С учетом этих шагов вы можете использовать:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...