Produit du jour : L'art du moyen age à partir de 29.00 € (Logiciel)
Bonjour,

Je souhaite calculer l'age d'une personne avec un affichage conditionnel
en fonction de celui ci.
si age < 3 mois on affiche le nombre de jours
si age < 1 an on affiche le nombre de mois
sinon on affiche l'age en année.

Voici ma fonction mais elle ne couvre pas tous les cas

import datetime

# date au format JJ/MM/AAAA
#CreateDateObject crée un objet datetime
def CalculerAgeEtLibelle( date, ref_date = Today() ):
age = ""
if date:
dn = CreateDateObject( date )
rd = CreateDateObject( ref_date )

diff = rd - dn
nb_jours = diff.days

if nb_jours < 90:
age = str(nb_jours) + " jour"
if nb_jours != 1:
age += "s"
elif diff.days < 365:
age = str(int( nb_jours / 30 )) + " mois"
else:
annee = int( nb_jours / 365.25 )
age = str(annee) + " an"
if annee != 1:
age += "s"

return age

def CreateDateObject(maDate):
(ji, mi, ai) = GetComposantDate(maDate)
oDate = datetime.datetime(ai,mi,ji)
return oDate

def GetComposantDate(maDate):
ji = int(maDate[0:2])
mi = int(maDate[3:5])
ai = int(maDate[6:10])
return (ji,mi,ai)

def Today():
( year, month, day, hour, min, sec, weekday, julianday, dummy ) =
localtime()
return "%02d/%02d/%04d" %( day, month, year )


Si aujourd'hui == 18/07/2007
Ne marche pas pour date de naissance le 18/04/2007, la fonction devrait
me retourner 3 mois et non 90 jours.
Idem, je risque de rencontrer des soucis avec les années bissextiles.

Je n'ai rien trouvé dans les module datetime, si vous avez une idée,
merci !!!

ReM
Voir les 2 réponses - Poster une réponseCe sujet ne répond pas à vos besoins ? Posez votre question !
mots-clés : calculer, age Catégories : Développement, Langage Python
 
Script d'actualité
parser le format reST
 

 

Téléchargements

Tous les téléchargements