Skip to content

Instantly share code, notes, and snippets.

@tcg
Created January 18, 2016 19:09
Show Gist options
  • Save tcg/107fafe448595eb5dc26 to your computer and use it in GitHub Desktop.
Save tcg/107fafe448595eb5dc26 to your computer and use it in GitHub Desktop.
Get first and last day of a particular month, in Python, with no requirements outside of Python's standard library. From: https://gist.github.com/waynemoore/1109153#gistcomment-1193720
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