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