Skip to content

Instantly share code, notes, and snippets.

@islander
Created September 9, 2015 07:12
Show Gist options
  • Select an option

  • Save islander/cc3b4dd987c39e89f806 to your computer and use it in GitHub Desktop.

Select an option

Save islander/cc3b4dd987c39e89f806 to your computer and use it in GitHub Desktop.
Get the start and end date for the month
import datetime
import calendar
def get_month_day_range(date):
"""
For a date 'date' returns the start and end date for the month of 'date'.
Month with 31 days:
>>> date = datetime.date(2011, 7, 27)
>>> get_month_day_range(date)
(datetime.date(2011, 7, 1), datetime.date(2011, 7, 31))
Month with 28 days:
>>> date = datetime.date(2011, 2, 15)
>>> get_month_day_range(date)
(datetime.date(2011, 2, 1), datetime.date(2011, 2, 28))
"""
first_day = date.replace(day=1)
last_day = date.replace(day=calendar.monthrange(date.year, date.month)[1])
return first_day, last_day
if __name__ == "__main__":
import doctest
doctest.testmod()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment