Calculer l'age directement à partir de la date de naissance

Signaler
Messages postés
6
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
13 janvier 2006
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour à tous,





Voilà j'ai un formulaire à developper, et je dois entrer les infos des
élèves d'un lycée. Donc j'ai un Textbox Date de naissance, je l'entrer
au format JJ/MM/AAAA, et j'aimerai que sur le texbox du dessous
apparaisse l'age calculé directement. Merci pour votre aide.

13 réponses

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Salut,

Si c'est du VB6, vois du côté de datediff().

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

ou alors tu t'eclate a decouper la string et a calculer toutes les annees bisextiles lol
Le Rasta fou rien, vous le savez bien
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
tu peux utiliser DateDiff, comme le suggère CanisLupus.

à noter que DateDiff ne peux donner de différence en années (BUG) ....
elle ne fais que la soustraction des années....

une solution est :

a = int(datediff ( "D", cdate("31/12/1983"), date) / 365.25)
ou a est finallement ton age ^^

*remplacer 31/12/1983 par votre date de naissance, c'est ici la mienne...

Renfield
Admin CodeS-SourceS - MVP Visual Basic
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Renfeld, je pensais à :

age=datediff("yyyy",datenaissance,date) et ça fonctionne très bien pour ce qui est d'obtenir un age en année.

Sinon, il reste le age = year(date) - year(datenaissance)

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
age = datediff("yyyy",cdate("31/12/1983"),date)
effectue en interne
age = year(date) - year(cdate("31/12/1983"))

ce qui est complètement faux...

2006 - 1983 => 23 .... mais ca ne prend pas en compte le fait que la date soit passée ou pas.

j'ai 22 ans, pas 23

je vous invite a faire le test, et favoriser :
age = int(datediff ( "D", cdate("31/12/1983"), date) / 365.25)
Messages postés
6
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
13 janvier 2006

Merci pour vos réponses. Mais j'ai pa compris grande chose...je suis débutant, et je sais meme pas où mettre le code lol



age = int(datediff ( "D", cdate("31/12/1983"), date) / 365.25)



sachant que j'ai deux textbox.



Txtdatenaiss où je rentre la date de naissance de quelqu'un et Txtage qui se remplit automatiquement.



Merci pour vos précisions
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
OK, tu as raison.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Private Sub Txtdatenaiss_Change()
Txtage.Text = CStr ( int(datediff ( "D", cdate(Txtdatenaiss.Text), date) / 365.25) )
End Sub

Renfield
Admin CodeS-SourceS - MVP Visual Basic
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
Ben dit donc Renfield, t'es né un bien drôle de jour!!!
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
géniale cette date, toujours du monde, la fête....
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
des coups feux en l'air,
des feux d'artifices,
des cowgirls, des callgirls aussi ;-), des kdo, des ptites bulles de champ, wai, c'est vrai, a y réfléchir mieux, c'est pas si mal finalement

Enjoy


( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
et dans 30 ans tu diras être du 1er janvier pour ne pas paraître 1an de plus
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
d'ailleurs même :

Private Sub Txtdatenaiss_Change()
If IsDate ( Txtdatenaiss.Text ) Then
Txtage.Text = CStr ( int(datediff ( "D", cdate(Txtdatenaiss.Text), date) / 365.25) ) & " ans"
Else
Txtage.Text = VbNullString
End If
End Sub

serais plus apporprié, lors de la saisie