Как разделить промежуток времени на куски одинакового размера? - PullRequest
1 голос
/ 18 марта 2019

Мне нужно разделить промежуток времени на куски одинакового размера каждые несколько минут. Например. время между настоящим моментом и 1 часом назад 12 кусочками по 5 минут каждый. Как я могу добиться этого в Python 3?

Ответы [ 2 ]

1 голос
/ 18 марта 2019

вы можете использовать timedelta в модуле datetime.

from datetime import datetime
from datetime import timedelta

start = datetime.now()
end = datetime(2019, 3, 19, 18, 00, 00)
while start < end:
    print(start)
    start += timedelta(minutes=5)    # add 5 minutes to start time
0 голосов
/ 18 марта 2019

dateutil.rrule, вероятно, будет самым простым долгосрочным способом сделать это, хотя API немного сложен:

rrule(dtstart=datetime.now() - timedelta(hours=1), until=datetime.now(), freq=MINUTELY, interval=5)

В качестве альтернативы, вы можете довольно легко сделать это вручную, просто начните иостановить datetime и увеличивать начало на соответствующую временную дельту, пока она не превысит конечную границу.Если вам нужно определенное количество фрагментов, а не конкретная длина фрагмента, вычислите разницу между началом и концом и разделите на свое число.

occurrences = []
end = datetime.now()
st = datetime.now() - timedelta(hours=1)
while st < end: 
    occurrences.append(st)
    st += timedelta(minutes=5)

оба будут медленнее, чем работают непосредственно с метками времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...