Comment déterminer le nombre de jours dans un mois en python ?

Published: 03 juin 2014

Tags: Python;

DMCA.com Protection Status

Pour obtenir le nombre de jours dans un mois donnée en python il faut penser au module calendar qui comprend la fonction monthrange. Cette fonction prend comme arguments l'année et le mois, et indique si le mois commence par lundi, mardi, etc et le nombre de jours dans le mois. Exemple:

Obtenir le nombre de jours dans un mois avec monthrange

from calendar import monthrange

year = 2014
month = 2

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

donne

Number of days: 28

Un autre exemple

year = 2016
month = 2

then

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

donne

Number of days: 29

Note:

>>> import calendar
>>> calendar.monthrange(2014,10)
(2, 31)
>>> calendar.monthrange(2014,11)
(5, 30)
>>> calendar.monthrange(2014,6)
(6, 30)

Le code utilisé sur le premier jour du mois est:

0 : Lundi
1 : Mardi
2 : Mercredi
3 : Jeudi
4 : Vendredi
5 : Samedi
6 : Dimanche

Créer une boucle for

On peut alors créer une simple boucle for sur tous les jours d'un mois donné:

for i in range(monthrange(year, month)[1]):
    print( 'day {}'.format(i+1) )

donne

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
day 29

Vérifier si une année est bissextile

Exemple d'application: verifier si une année est bissextile ou non en python:

>>> calendar.monthrange(2012,2)[1]
29
>>> if calendar.monthrange(2012,2)[1] == 29:
...     print "Année bissextile"
... else:
...     print "Année non bissextile"
... 
Année bissextile
>>> if calendar.monthrange(2013,2)[1] == 29:
...     print "Année bissextile"
... else:
...     print "Année non bissextile"
... 
Année non bissextile

Références