Reputation: 155
i want date range between two dates. the result value will be like it should support for string operations or it should be in string.
i have tried the following code but i am not at all doing anything with the date object.
import datetime
def generate_dates(start_date, end_date):
td = datetime.timedelta(hours=24)
current_date = start_date
while current_date <= end_date:
print current_date
current_date += td
start_date = datetime.date(2010, 1, 2)
end_date = datetime.date(2010, 1, 5)
generate_dates(start_date, end_date)
when i am trying to print break the current date current_date[0:4], it is throwing error like this.
Traceback (most recent call last):
File "C:/Users/Gopi/Desktop/d.py", line 12, in <module>
generate_dates(start_date, end_date)
File "C:/Users/Gopi/Desktop/d.py", line 7, in generate_dates
print current_date[0]
TypeError: 'datetime.date' object is not subscriptable
please,help me
Upvotes: 1
Views: 526
Reputation: 362707
Use the yield
keyword:
import datetime
def generate_dates(start_date, end_date):
one_day = datetime.timedelta(days=1)
current_date = start_date
while current_date <= end_date:
yield current_date
current_date += one_day
start_date = datetime.date(2010, 1, 2)
end_date = datetime.date(2010, 1, 5)
for date in generate_dates(start_date, end_date):
print(date)
Upvotes: 1