Hacker News new | ask | show | jobs
by anvandare 1359 days ago
Once dates get too complex it is easier to just have an external script figure out whether today is the day and have it run every day:

  0 9 * * * anvandare is-today-the-day.py && celebrate.sh
With is-today-the-day.py being:

  #!/usr/bin/env python3
  import sys
  from dateutil.easter import easter
  from datetime import datetime as dt
  today = dt.today().date()
  (easter(2023) - today).days == 0 and sys.exit(0) or sys.exit(1)
Or, if we didn't have the easter function already (just adding this because it was fun to work it out):

  #!/usr/bin/env python3
  import sys, ephem as e, datetime as dt
  setup = '2022/09/25'
  date = (e.next_full_moon(e.next_equinox(setup))).datetime()
  easter2023 = (date + dt.timedelta(7 - date.isoweekday())).date()
  today = dt.datetime.today().date()
  (easter2023 - today).days == 0 and sys.exit(0) or sys.exit(1)