Bonjour,
Je suis débutant python et j'utilise python 2.7.6
Je voudrais savoir les dates du :
- 1er mercredi du mois
- 2em jeudi du mois
- Dernier jeudi du mois
En théorie comment faut-il procéder ?
Pouvez-vous m'aiguiller ?
Merci.
Bonjour,
Je suis débutant python et j'utilise python 2.7.6
Je voudrais savoir les dates du :
- 1er mercredi du mois
- 2em jeudi du mois
- Dernier jeudi du mois
En théorie comment faut-il procéder ?
Pouvez-vous m'aiguiller ?
Merci.
salut,
les modules datetime et calendar disposent de fonctions assez poussées et qui aident bien
dans l'idée on peut, pour le mois concerné, récupérer grace à calendar.monthrange() son nombre de jours, et ensuite simplement faire une boucle; "pour chaque jour du mois on garde le jour dans une liste si c'est un jeudi" par exemple, reste plus ensuite qu'à prendre le 2ème ou le dernier etc.
quelque chose du genre :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 >>> import datetime, calendar, locale >>> locale.setlocale(locale.LC_TIME, 'fr_FR') # histoire de se simplifier la vie plus bas avec strftime() 'fr_FR' >>> t = datetime.datetime.today() >>> l = [i for i in range(1, calendar.monthrange(t.year, t.month)[1] + 1) if datetime.datetime(t.year, t.month, i).strftime('%A') == 'jeudi'] >>> l [3, 10, 17, 24]
edit: peut-être plus lisible comme ça:
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 from locale import setlocale, LC_TIME from calendar import monthrange from datetime import datetime as dt setlocale(LC_TIME, 'fr_FR') t = dt.today() l = [] for i in range(monthrange(*t.timetuple()[:2])[1]): if dt(t.year, t.month, i+1).strftime('%A') == 'jeudi': l.append(i+1)
Bonsoir,
Merci pour votre réponse.
Mais je ne comprends pas ce que veut python.
En console python :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 >>> import datetime, calendar, locale >>> locale.setlocale(locale.LC_TIME, 'fr_FR') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/locale.py", line 579, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting >>>
Merci.
Bonsoir,
Ok j'ai trouvé.
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 >>> import datetime, calendar, locale >>> locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8') 'fr_FR.UTF-8' >>> t = datetime.datetime.today() >>> l = [i for i in range(1, calendar.monthrange(t.year, t.month)[1] + 1) if datetime.datetime(t.year, t.month, i).strftime('%A') == 'jeudi'] >>> l [3, 10, 17, 24] >>>
Partager