Im пытаюсь получить все даты в диапазоне, чтобы сделать список дат:Получение последней даты в диапазоне от 2 даты
Когда я начала в 09/Jan/2017 ххх и конец в 11/Янв/2017 Я ожидаю, что следующие даты:
- 2017-01-09
- 2017-01-10
- 2017-01-11
проблема я только получить
- 2017-01-09
- 2017-01-10
, что я пропустил здесь, чтобы получить 3-ю дату
def generate_index_date_list():
# format like "11/Jan/2017:11:11:11 +0200"
start_datetime_string = "09/Jan/2017:11:11:11 +0200"
end_datetime_string = "11/Jan/2017:11:11:11 +0200"
startdate = datetime.strptime(start_datetime_string.split(":")[0], "%d/%b/%Y").date()
enddate = datetime.strptime(end_datetime_string.split(":")[0], "%d/%b/%Y").date()
for single_date in daterange(startdate, enddate):
print single_date
def daterange(start_date, end_date):
for n in range(int((end_date - start_date).days)):
yield start_date + timedelta(n)
Не забывайте, что 'range' поднимается, но не включает конечное значение. Подумайте об этом с точки зрения чисел. Если 'daterange' был' 4-2', тогда он дал бы только две даты, где, как если бы это было '5-2', это дало бы 3. Вам нужно добавить 1 к вашей функции' daterange'. –