January 27, 2023

Генерация диапазона дат между начальной и конечной (включая их)


from datetime import date, timedelta

d1 = date(2018, 8, 13)  # начальная дата
d2 = date(2018, 9, 13)  # конечная дата

delta = d2 - d1         # timedelta
if delta.days<=0:
    print ("Ругаемся и выходим")
for i in range(delta.days + 1):
    print(d1 + timedelta(i))

Решение с использованием Pandas:

import datetime as DT
import pandas as pd

start_date = DT.datetime(2018, 8, 5)
end_date = DT.datetime(2018, 7, 28)

res = pd.date_range(
    min(start_date, end_date),
    max(start_date, end_date)
).strftime('%d/%m/%Y').tolist()