29 lines
808 B
Markdown
29 lines
808 B
Markdown
---
|
|
title: Date range
|
|
tags: date
|
|
expertise: intermediate
|
|
author: maciv
|
|
firstSeen: 2020-10-28T16:19:14+02:00
|
|
lastUpdated: 2021-01-07T23:30:28+02:00
|
|
---
|
|
|
|
Creates a list of dates between `start` (inclusive) and `end` (not inclusive).
|
|
|
|
- Use `datetime.timedelta.days` to get the days between `start` and `end`.
|
|
- Use `int()` to convert the result to an integer and `range()` to iterate over each day.
|
|
- Use a list comprehension and `datetime.timedelta` to create a list of `datetime.date` objects.
|
|
|
|
```py
|
|
from datetime import timedelta, date
|
|
|
|
def daterange(start, end):
|
|
return [start + timedelta(n) for n in range(int((end - start).days))]
|
|
```
|
|
|
|
```py
|
|
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)]
|
|
```
|