Skip to content

Instantly share code, notes, and snippets.

@xtornasol512
Last active July 4, 2018 15:44
Show Gist options
  • Save xtornasol512/7d82a726575ad5751bd9f1d05bb0518c to your computer and use it in GitHub Desktop.
Save xtornasol512/7d82a726575ad5751bd9f1d05bb0518c to your computer and use it in GitHub Desktop.
Python Datetime scripts
# This give you the last day of the month given on second index
from calendar import monthrange
monthrange(2012, 2)
>>> (2, 29)
import datetime
date  = datetime.datetime.now()
>>> datetime.datetime(2018, 7, 4, 1, 46, 10, 112669)
date.replace(day = calendar.monthrange(date.year, date.month)[1])
>>> datetime.datetime(2018, 7, 31, 1, 46, 10, 112669)
# Gives the date with last day of month 
# You can easily calculate this using rrule from dateutil module:

from dateutil import rrule
from datetime import date

list(rrule.rrule(rrule.MONTHLY, dtstart=date(2018, 1, 1), until=date(2018, 5, 1)))
>>> [datetime.datetime(2018, 1, 1, 0, 0), datetime.datetime(2018, 2, 1, 0, 0), datetime.datetime(2018, 3, 1, 0, 0), datetime.datetime(2018, 4, 1, 0, 0), datetime.datetime(2018, 5, 1, 0,
 0)]
from datetime import datetime
from dateutil import relativedelta
date1 = datetime.strptime(str('2018-05-01 12:00:00'), '%Y-%m-%d %H:%M:%S')
date2 = datetime.strptime(str('2018-05-30'), '%Y-%m-%d')
r = relativedelta.relativedelta(date2, date1)
# Print total months between dates
r.months
>>> 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment