Как доработать функцию

def generate_date():
    date_data = []
    day_delta = datetime.timedelta(days=1)
    start_date = dateparser.parse('2020-03-01').date()
    end_date = start_date + 30 * day_delta
    for i in range((end_date - start_date).days):
        date_result = (start_date + i * day_delta)
        date_data.append(date_result)
return date_data

Есть такая функция которая генерирует 30 дней после определенной даты. Как можно доработать эту функция чтобы дата генерировалась с определенной даты до сегодняшнего дня ?


Ответы (2 шт):

Автор решения: Raharasomaha

Благодаря комментарию под вопросом я понял как это реализовать.

def generate_date():
    date_data = []
    day_delta = datetime.timedelta(days=1)
    start_date = dateparser.parse('2020-03-01').date()
    end_date = start_date + 30 * day_delta
    for i in range((end_date - start_date).days):
        date_result = (start_date + i * day_delta)
        date_data.append(date_result)
 return date_data

В это код на строчке end_date = start_date + 30 * day_delta надо поменять на end_date = datetime.date.today() в итоге будет генерироваться нужный диапазон дат.

→ Ссылка
Автор решения: D. Violet
from datetime import timedelta
import datetime    

# с текущего дня + 30 дней
  print('с текущего дня + 30 дней')
  for i in range(0, 30):
      print(i, (datetime.datetime.now() + timedelta(days=i)).strftime('%d.%m.%Y'))

# с произвольной даты + 30 дней
  print('с произвольной даты + 30 дней')
  for i in range(30):
      print(i, (datetime.date(2020, 1, 1) + timedelta(days=i)).strftime('%d.%m.%Y'))

# с произвольной даты до сегодняшнего дня
  print('с произвольной даты до сегодняшнего дня')
  for i in range((datetime.datetime.now().date() - datetime.date(2020, 4, 1)).days + 1):
      print(i, (datetime.date(2020, 4, 1) + timedelta(days=i)).strftime('%d.%m.%Y'))

>>>
с произвольной даты до сегодняшнего дня
0 01.04.2020
1 02.04.2020
2 03.04.2020
3 04.04.2020
4 05.04.2020
5 06.04.2020
6 07.04.2020
7 08.04.2020
8 09.04.2020
9 10.04.2020
10 11.04.2020
11 12.04.2020
12 13.04.2020
13 14.04.2020
14 15.04.2020
15 16.04.2020
16 17.04.2020
17 18.04.2020
18 19.04.2020
19 20.04.2020
20 21.04.2020
21 22.04.2020
22 23.04.2020
23 24.04.2020
→ Ссылка