Получение количества часов между диапазоном даты и времени в Python

1

Поэтому я пытаюсь напечатать общее количество часов в промежутках между датой начала и датой окончания в python следующим образом:

@app.route('/test/')
def test():

date_format = "%Y-%m-%d %H:%M:%S"
start_date_time = datetime.strptime("2018-10-16 07:00:00", date_format)
end_date_time = datetime.strptime("2018-10-18 22:00:00", date_format)

def daterange(start_date_time, end_date_time):
    for n in range(int ((end_date_time - start_date_time).days)):
        yield start_date_time + timedelta(n)

for single_date in daterange(start_date_time, end_date_time):
    def get_delta(start_date_time, end_date_time):
        delta = end_date_time - start_date_time
        return delta

# Split time in hours
delta = get_delta(start_date_time,end_date_time)
for i in range(delta.days * 24 + 1): # THIS IS ONLY CALCULATING 24HRS FROM TIME GIVEN START TIME NOT TILL THE SELECTED END TIME SO I'M ONLY GETTING AN EXACT 24 HOUR RANGE
    currtime = start_date_time + timedelta(hours=i)

    print (currtime)
return ("done")

К этому я получаю только первые 24 часа с выбранной даты, но я хочу продолжать подсчет и получать все часы до выбранной даты окончания.

  • 2
    Вы всегда можете использовать .total_seconds() / 3600 docs.python.org/3/library/…
Теги:
datetime

1 ответ

2
Лучший ответ

Вы можете переусердствовать.

from datetime import datetime, timedelta

date_format = "%Y-%m-%d %H:%M:%S"
start_date_time = datetime.strptime("2018-10-16 07:00:00", date_format)
end_date_time = datetime.strptime("2018-10-18 22:00:00", date_format)

def get_delta(l, r):
    return abs(int((l-r).total_seconds())) / 3600

for h in range(int(get_delta(start_date_time, end_date_time))):
    print((start_date_time + timedelta(0, h*3600)).strftime(date_format))
  • 0
    Но это просто дает мне общее количество часов между обеими датами и не печатает интервалы между часами ... спасибо за вашу помощь
  • 1
    Ааа. Это странная вещь, но хорошо. Ред.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню