Problème pour calculer l'âge

damien -  
wAwAmina Messages postés 21 Statut Membre -
Bonsoir,

quand je souhaite calculer l'âge en faisant la différence entre la date du jour et la date de naissance, j'ai un petit soucis.

quand je met : age= date()-date_de_naissance, j'obtiens un chiffre incompréhensible.

quand je fais age=year(date())-year(date_de_naissance) forcément j'ai un bug, car par exemple, moi qui suit née en fin d'année 1982, nous sommes en 2004, il me balance que j'ai 22ans or, j'en est eu 21 y'a qques temps.

Comment faire, pour qu'il donne l'âge exact sans se tromper?

Merci d'avance

8 réponses

Ben
 
En fait dans ta formule "age = year (...)" tu ne compares que les années, il faut que tu tiennes compte du jour et mois de naissance ainsi que de la date daujourd'hui. Car quand tu es né tu n'avais pas encore 1 an (on considère juste que tu n'as que qqe mois).
Ou sinon il faut que tu rajoutes dans ta formule "-1" pour te donner l'âge exact.
Voilà j'espère que cela va résoudre ton problème.

Tchô Ben
1
Ben
 
En fait dans ta formule "age = year (...)" tu ne compares que les années, il faut que tu tiennes compte du jour et mois de naissance ainsi que de la date daujourd'hui. Car quand tu es né tu n'avais pas encore 1 an (on considère juste que tu n'as que qqe mois).
Ou sinon il faut que tu rajoutes dans ta formule "-1" pour te donner l'âge exact.
Voilà j'espère que cela va résoudre ton problème.

Tchô Ben
0
Ben
 
En fait dans ta formule "age = year (...)" tu ne compares que les années, il faut que tu tiennes compte du jour et mois de naissance ainsi que de la date daujourd'hui. Car quand tu es né tu n'avais pas encore 1 an (on considère juste que tu n'as que qqe mois).
Ou sinon il faut que tu rajoutes dans ta formule "-1" pour te donner l'âge exact.
Voilà j'espère que cela va résoudre ton problème.

Tchô Ben
0
Damien
 
Et bien le problème reste le même : car si on enlèves 1 à chaque fois, on considera que l'année en cours ne comptes pas : par exemple : admettons qq'un qui est né le 01/01/2003. Nous sommes le 02/01/04, cette personne à 1an, je retranche 1, cette personne à 0ans, donc ça colle pas.

Mon problème quand je compare les mois et les jours, c'est que j'obtiens un truc bizarre. En fait, dans ma table, la date_de_naissance est de type Date/heure mais l'âge, que jle mette en numérique ou en date/heure, ça bug, car si on reprend mon exemple: cette personne devrait avoir 1ans et 1 jour, mais l'ordinateur n'arrives pas à me le calculer.

donc je suis coincé à ce niveau là :(.

merci de votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
damien
 
je pense avoir compris : en fait, j'ai mis ma date de naissance en date/heure et age en numérique. quand je fait la date du jour - la date de naissance, j'obtiens l'age mais en jour donc il m'a suffit de la diviser par 365. Le seul "pb" c'est qu'un moment c'est 365 et à un autre c'est 366 donc j'aimerais savoir si c'est bien bon ce que j'ai fait. et ça me fait penser à celui qui est né le 29 février, lol pas de bol il fait son anniversaire tous les 4ans lol
0
Utilisateur anonyme
 
bonjour
un exemple en VB, transposable facilement
nombre de jours entre 2 dates

A=année 1
m = mois 1
j = jour 1
gosub datecalcul
DateDifference = Cal

a = année 2
m = mois 2
j = jour 2
GoSub DateCalcul

DateDifference = DateDifference - Cal ' résultat

...

DateCalcul:
Cal = A
If m <= 2 Then Cal = (Cal - 1)
Cal1 = A
Cal1 = Cal1 * 365
Cal = Cal + j + Cal1 + ((m - 1) * 31)
If m <= 2 Then Cal = Cal - Int(((m * 40) + 230) / 100)
Return
0
jonathan
 
a la la, les problemes de dates, on a tous commencé par là :-)
0
Utilisateur anonyme
 
ça l'a vachement aidé
merci pour lui
0
wAwAmina Messages postés 21 Statut Membre
 
Bonjour,
J'ai à peu près le même problème mais je n'ai pas compri la démarche
Pour moi, quand je calcule l'age d'une facture (Age de la facture = Date actuelle - date de la facture) j'obtiens le nombre des jours entre ces deux dates (la cellule en format nombre). Or lorsque je mets la cellule au format date j'obtiens une date irraisonable (01/10/1900), SVP puis-je avoir une explication ainsi ke la bonne methode pour résoudre ce problème et merci d'avance :)

P.S: la date actuelle et la date de la facture sont en format DATE
0