23 lines
831 B
Python
23 lines
831 B
Python
import datetime
|
|
from datetime import timedelta, timezone
|
|
|
|
|
|
def get_sunday(date):
|
|
return date - datetime.timedelta(days=date.weekday()) + timedelta(days=6)
|
|
|
|
|
|
def get_last_sunday_dates(number, include_current_week=True):
|
|
now_utc = datetime.datetime.now(timezone.utc)
|
|
today = datetime.datetime(now_utc.year, now_utc.month, now_utc.day)
|
|
if include_current_week:
|
|
days_to_last_sunday = (6 - today.weekday()) % 7
|
|
last_sunday = today + datetime.timedelta(days=days_to_last_sunday)
|
|
else:
|
|
days_to_last_sunday = (today.weekday() - 6) % 7
|
|
last_sunday = today - datetime.timedelta(days=days_to_last_sunday)
|
|
last_n_sundays = []
|
|
for i in range(number):
|
|
sunday = last_sunday - datetime.timedelta(days=i * 7)
|
|
last_n_sundays.append(sunday.date())
|
|
return last_n_sundays
|