Создание диапазона дат в Python

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Диапазон дат

Напишите функцию на Python под названием daterange(start, end), которая принимает два объекта datetime.date в качестве аргументов и возвращает список всех дат между ними. Список должен включать начальную дату, но не конечную.

Для решения этой проблемы вы можете следовать следующим шагам:

  1. Используйте datetime.timedelta.days, чтобы получить количество дней между start и end.
  2. Используйте int(), чтобы преобразовать результат в целое число, и range(), чтобы перебрать каждый день.
  3. Используйте списочное выражение и datetime.timedelta, чтобы создать список объектов datetime.date.
from datetime import timedelta, date

def daterange(start, end):
  return [start + timedelta(n) for n in range(int((end - start).days))]
from datetime import date

daterange(date(2020, 10, 1), date(2020, 10, 5))
## [date(2020, 10, 1), date(2020, 10, 2), date(2020, 10, 3), date(2020, 10, 4)]

Резюме

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