Skip to content

Instantly share code, notes, and snippets.

@idiomer
Last active January 26, 2021 11:41
Show Gist options
  • Save idiomer/eb5af607b1047d714709e0a54579b9c1 to your computer and use it in GitHub Desktop.
Save idiomer/eb5af607b1047d714709e0a54579b9c1 to your computer and use it in GitHub Desktop.
python date utils: yesterday, dateAdd, dateSub, dateRange
def get_yesterday(n_days_ago=1, FMT='%Y-%m-%d'):
import datetime
return datetime.datetime.strftime(
datetime.datetime.now() - datetime.timedelta(n_days_ago), FMT
)
def dateAdd(thedate, num, FMT='%Y-%m-%d'):
import datetime
strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
return strftime(strptime(thedate, FMT) + datetime.timedelta(num), FMT)
def dateSub(thedate, num, FMT='%Y-%m-%d'):
return dateAdd(thedate, -num, FMT)
def dateRange(start, end, end_include=False, step=1, FMT="%Y-%m-%d"):
import datetime
strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
days = (strptime(end, FMT) - strptime(start, FMT)).days
days = days + int(step/abs(step)) if end_include else days # +1 OR -1
return [strftime(strptime(start, FMT) + datetime.timedelta(i), FMT) for i in range(0, days, step)]
def dateDiff(end_date, start_dt, FMT='%Y-%m-%d'):
import datetime
strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
return (strptime(end_date, FMT) - strptime(start_dt, FMT)).days
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment