How to get all the dates between two dates?
Question:
from datetime import timedelta, date
def daterange(date1, date2):
for n in range(int ((date2 - date1).days)+1):
yield date1 + timedelta(n)
start_dt = date(2015, 12, 20)
end_dt = datetime.now()
for dt in daterange(start_dt, end_dt):
print(dt.strftime("%Y%m%d"))
I want to print all the dates between start_dt and current date.
Here’s the error:- unsupported operand type(s) for -: 'datetime.datetime' and 'datetime.date'
Answers:
import datetime
def daterange(date1, date2):
date1 = datetime.datetime.strptime(date1, '%Y-%m-%d')
date2 = datetime.datetime.strptime(date2, '%Y-%m-%d')
return [date1 + datetime.timedelta(days=x) for x in range((date2-date1).days + 1)]
date_list = daterange('2018-01-01', '2019-01-02')
for i in date_list:
print(i.strftime('%Y-%m-%d'))
Hopefully, this is what you are looking for.
An alternative solution to your problem is using pandas
import pandas as pd
pd.date_range(start=start_date,end=end_date)
from datetime import timedelta, date
def daterange(date1, date2):
for n in range(int ((date2 - date1).days)+1):
yield date1 + timedelta(n)
start_dt = date(2015, 12, 20)
end_dt = datetime.now()
for dt in daterange(start_dt, end_dt):
print(dt.strftime("%Y%m%d"))
I want to print all the dates between start_dt and current date.
Here’s the error:- unsupported operand type(s) for -: 'datetime.datetime' and 'datetime.date'
import datetime
def daterange(date1, date2):
date1 = datetime.datetime.strptime(date1, '%Y-%m-%d')
date2 = datetime.datetime.strptime(date2, '%Y-%m-%d')
return [date1 + datetime.timedelta(days=x) for x in range((date2-date1).days + 1)]
date_list = daterange('2018-01-01', '2019-01-02')
for i in date_list:
print(i.strftime('%Y-%m-%d'))
Hopefully, this is what you are looking for.
An alternative solution to your problem is using pandas
import pandas as pd
pd.date_range(start=start_date,end=end_date)