Is there a way using Python"s standard library to easily determine (i.e. one function call) the last day of a given month?
If the standard library doesn"t support that, does the dateutil package support this?
calendar.monthrange provides this information:
¬†¬†¬†¬†Returns weekday of first day of the month and number of days in month, for the specified year and month.
>>> import calendar >>> calendar.monthrange(2002, 1) (1, 31) >>> calendar.monthrange(2008, 2) # leap years are handled correctly (4, 29) >>> calendar.monthrange(2100, 2) # years divisible by 100 but not 400 aren"t leap years (0, 28)
seems like the simplest way to go.
If you don"t want to import the
calendar module, a simple two-step function can also be:
import datetime def last_day_of_month(any_day): # this will never fail # get close to the end of the month for any day, and add 4 days "over" next_month = any_day.replace(day=28) + datetime.timedelta(days=4) # subtract the number of remaining "overage" days to get last day of current month, or said programattically said, the previous day of the first of next month return next_month - datetime.timedelta(days=next_month.day)
>>> for month in range(1, 13): ... print last_day_of_month(datetime.date(2012, month, 1)) ... 2012-01-31 2012-02-29 2012-03-31 2012-04-30 2012-05-31 2012-06-30 2012-07-31 2012-08-31 2012-09-30 2012-10-31 2012-11-30 2012-12-31
This book introduces machine learning methods in finance. It features a unified treatment of machine learn...
In the summer of 2008, after three decades of building software in corporate data centers, I walked away from corporate America to take a stab at building a technology company from the ground up based...
ig Data applications are growing very rapidly around the globe. This new approach to decision making takes into account data gathered from multiple sources. Here my goal is to show how these diverse s...
Vincent Bumgarner has been designing software for nearly 20 years, working in many languages on nearly as many platforms. He started using Splunk in 2007 and has enjoyed watching the product evolve ov...