Python provides an inbuilt calendar module which allows us to determine the number of days in a month

## Using python calendar module and monthrange

Python provides an inbuilt calendar module which allows us to determine the number of days in a month. We can use calendar.monthrange() function to get the number of days in a month.

The syntax for this function is: calendar.monthrange(year, month). The year and month parameters must be valid integers, where the month ranges between 1 and 12. The function returns a tuple containing two values:

The first value is the weekday of the first day of the month (0 is Monday, 6 is Sunday).

The second value is the number of days in that particular month.

For example, if we want to know the number of days in February 2014 we can use:

`import calendar`

`days = calendar.monthrange(2014, 2)[1]`

`print("Number of days in February 2014 is "+str(days))`

this code gives

`Number of days in February 2014 is 28`

Note that the output of calendar.monthrange(2014, 2) is (5, 28). This means that the first day of the month is a Saturday and the month has 28 days in it.

Another example

`year = 2016`

`month = 2`

then

`print( 'Number of days: {}'.format( monthrange(year, month)[1] ) )`

returns

`Number of days: 29`

## Using datetime

We can also use datetime module to get the number of days as follows:

`from datetime import date`

`days = (date(2014, 2+1, 1) - date(2014, 2, 1)).days`

`print("Number of days in February 2014 is "+str(days))`

The output will be:

`Number of days in February 2014 is 28`

## Loop through the days of any given month

It is then possible to use it to create a simple for loop to go through all days in a given month:

`for i in range(1,calendar.monthrange(2014, 2)[1]+1):`

`print( 'day {}'.format(i) )`

the output will be:

`day 1`

`day 2`

`day 3`

`day 4`

`day 5`

`day 6`

`day 7`

`day 8`

`day 9`

`day 10`

`day 11`

`day 12`

`day 13`

`day 14`

`day 15`

`day 16`

`day 17`

`day 18`

`day 19`

`day 20`

`day 21`

`day 22`

`day 23`

`day 24`

`day 25`

`day 26`

`day 27`

`day 28`

## References

Links | Site |
---|---|

calendar.monthrange(year, month) | docs.python.org |

datetime — Basic date and time types | docs.python.org |