Sherluck08
Sherluck08

Reputation: 53

Get the list of dates between last Sunday of the week and today

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

Answers (3)

Asha Anandan
Asha Anandan

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

GIRISH kuniyal
GIRISH kuniyal

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

HayTV
HayTV

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

Related Questions