AKHIL MATHEW AKHIL MATHEW - 22 days ago 8
Python Question

how to get the first day and last day of current month in python

I am writing an SQL query to get the available data between the first date and last date of the current month in python. For this how can I get first and last date of current month. (In the question that already asked in stackoverflow only deals with end date. Also I want the answer as a date field like 01-03-2016 or 31-03-2016)

Answer

how to get the first day and last day of current month in python

There's a function in the standard lib calendar.monthrange(year, month)

>>> import calendar
>>> calendar.monthrange(2016, 3)
(1, 31)

Careful, monthrange doesn't return the dates of first and last days, but returns weekday of first day of the month and number of days in month, for the specified year and month.

So to get first and last date objects out of it:

>>> _, num_days = calendar.monthrange(2016, 3)
>>> first_day = datetime.date(2016, 3, 1)
>>> last_day = datetime.date(2016, 3, num_days)
>>> first_day
datetime.date(2016, 3, 1)
>>> last_day
datetime.date(2016, 3, 31)

String format

>>> first_day.strftime('%d-%m-%Y')
'01-03-2016'
>>> last_day.strftime('%d-%m-%Y')
'31-03-2016'