Skip to content

Instantly share code, notes, and snippets.

@wqa
Last active November 29, 2022 06:27
Show Gist options
  • Save wqa/540119ad3bffbc46dafb51e6c5347744 to your computer and use it in GitHub Desktop.
Save wqa/540119ad3bffbc46dafb51e6c5347744 to your computer and use it in GitHub Desktop.
from datetime import datetime, timedelta
# utility functions for advent sundays
# calculate a given advent sunday (1-4), optionally for a given year
def advent(**kwargs) -> datetime:
no = min(max(int(kwargs.get('advent', 1)), 1), 4)
year = kwargs.get('year', datetime.now().year)
xmas = datetime(year, 12, 25)
advent_4 = xmas - timedelta(days=xmas.isoweekday())
return advent_4 - timedelta(days=(7*(4-no)))
# calculate todays adventual status, returns a tuple with advent-number and daydiff to that sunday (0 == it is today)
def is_advent(a_day = None):
if not a_day:
a_day = now()
a1_delta = 7+(datetime(a_day.year, a_day.month, a_day.day) - advent(advent=1)).days
return a1_delta // 7, a1_delta % 7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment