Reputation: 53
I want a list contains all dates between last Sunday of the week and today, say today is 05/11/2019, last Sunday is 03/11/2019, I want to list all the dates between 03/11/2019 and today 05/11/2019
I was able to get the last Sunday of the week with the code below
from datetime import datetime, timedelta, date
today = date.today()
offset = (today.weekday() - 6) % 7
print("Offset", offset)
last_sunday = today - timedelta(days=offset)
print(last_sunday)
The output I want is
['03/11/2019', '04/11/2019', '05/11/2019']
Upvotes: 0
Views: 401
Reputation: 56
from datetime import date, timedelta
sdate = date(2019,11,3)
today = date.today()
diff = today - sdate
for i in range(diff.days+1):
day = sdate + timedelta(days=i)
print(day)
Upvotes: 1
Reputation: 770
Its solution with your specified output format.
from datetime import datetime, timdelta
current_date = datetime.now()-timedelta(days=1)
datetime_list = [current_date-timedelta(days=offset) for offset in range((current_date.weekday()+1)%7+1)]
datetime_list.reverse()
datetime_list = [ '{0:02d}/{1:02d}/{2:}'.format(i.day,i.month,i.year) for i in datetime_list]
print(datetime_list)
Upvotes: 1
Reputation: 573
Here. Hope this will help you!
from datetime import datetime, timedelta, date
def daterange(date1, date2):
for n in range(int ((date2 - date1).days)+1):
yield date1 + timedelta(n)
today = date.today()
offset = (today.weekday() - 6) % 7
print("Offset", offset)
last_sunday = today - timedelta(days=offset)
print(last_sunday)
for dt in daterange(last_sunday, today):
print(dt.strftime("%Y-%m-%d"))
Upvotes: 1