Python/Exercices/Dates
< Python
Format de date
modifierSoit la fonction qui affiche la date au format 2011-04-02 :
#!/usr/bin/env python
import time
import datetime
raw_input(datetime.date.today()) #il est à noter que raw_input n'existe pas en python 3
Comment la convertir au format français (ex : 2 avril 2011) ?
Solution
En fait il existe déjà un module pour le faire[1] :
#!/usr/bin/env python
import time
import locale
def temps():
locale.setlocale(locale.LC_ALL,'')
temp=time.strftime('Nous sommes le %A %d %B %Y et il est %H h %M min et %S s')
return temp
print temps()
Il renvoie : Nous sommes le samedi 02 avril 2011 et il est 13 h 53 min et 41 s.
Modification de date
modifierOn cherche à obtenir les dates d'un mois avant et un mois après celle d'aujourd'hui.
Solution
#!/usr/bin/env python
import time
def in_the_future(months=1):
year, month, day = datetime.date.today().timetuple()[:3]
new_month = month + months
return datetime.date(year + (new_month / 12), new_month % 12, day)
def in_the_past(months=-1):
year, month, day = datetime.date.today().timetuple()[:3]
new_month = month + months
return datetime.date(year + (new_month / 12), new_month % 12, day)
Donc
in_the_future()[2]
in_the_past()
renvoient :
2011-05-02
2011-03-02
Attention cette solution est fausse!!! vous avez qu’à tester avec le mois de janvier ou de décembre... vous devez utiliser$ et un -*- coding: utf-8 -*- c’est pas du luxe!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
d1 = datetime.date.today()
from dateutil.relativedelta import relativedelta
d1 + relativedelta(months=1)
datetime.date(2012, 4, 8)
d2 = datetime.date(year=2012,month=1,day=31)
d2 + relativedelta(months=1)
datetime.date(2012, 2, 29)
Références
modifier- ↑ http://www.codyx.org/snippet_afficher-date-jour_92_ct_python_1166.aspx
- ↑ http://stackoverflow.com/questions/546321/python-date-time-get-date-6-months-from-now
- http://docs.python.org/release/2.1.3/lib/module-time.html#l2h-1299
- Utilisateur:JackBot/autoarchivage sur Wikipédia