Print all day-dates between two dates
Using a list comprehension:
from datetime import date, timedelta d1 = date(2008,8,15) d2 = date(2008,9,15) # this will give you a list containing all of the dates dd = [d1 + timedelta(days=x) for x in range((d2-d1).days + 1)] for d in dd: print d # you can't join dates, so if you want to use join, you need to # cast to a string in the list comprehension: ddd = [str(d1 + timedelta(days=x)) for x in range((d2-d1).days + 1)] # now you can join print "\n".join(ddd)
I came up with this:
from datetime import date, timedelta start_date = date(2008, 8, 15) end_date = date(2008, 9, 15) # perhaps date.now() delta = end_date - start_date # returns timedelta for i in range(delta.days + 1): day = start_date + timedelta(days=i) print(day)
2008-08-15 2008-08-16 ... 2008-09-13 2008-09-14 2008-09-15
Your question asks for dates in-between but I believe you meant including the start and end points, so they are included. To remove the end date, delete the "+ 1" at the end of the range function. To remove the start date, insert a 1 argument to the beginning of the range function.