I am trying to get a date of last 90 days Sundays (3 months Sunday) from the current date in python using datetime. I am able to get last 3 months Sunday but not from current da
from datetime import date, timedelta
from pprint import pprint
def is_sunday(day):
return day.weekday() == 6
def sundays_within_last_x_days(num_days = 90):
result = []
end_date = date.today()
start_date = end_date - timedelta(days = num_days)
while start_date <= end_date:
if is_sunday(start_date):
result.append(start_date)
start_date += timedelta(days = 1)
return result
if __name__ == "__main__":
dates = sundays_within_last_x_days(30)
pprint(dates)
Resources
This might give you a better approach based on your draft. For more information on how to understand more about this. Please follow the next link
from datetime import date, timedelta
def all_sundays(year):
# January 1st of the given year
dt = date(year, 1, 1)
# First Sunday of the given year
dt += timedelta(days = 6 - dt.weekday())
while dt.year == year:
yield dt
dt += timedelta(days = 7)
for s in all_sundays(2020):
print(s)
Output
2020-01-05
2020-01-12
2020-01-19
2020-01-26
2020-02-02
2020-12-06
2020-12-13
2020-12-20
2020-12-27