DÉTERMINER L'ÂGE À PARTIR DE LA DATE DE NAISSANCE

Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
- - Dernière réponse : nadifnet
Messages postés
1
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
18 novembre 2009
- 18 nov. 2009 à 21:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7259-determiner-l-age-a-partir-de-la-date-de-naissance

nadifnet
Messages postés
1
Date d'inscription
mardi 9 août 2005
Statut
Membre
Dernière intervention
18 novembre 2009
-
Merci Bq pour le code
philippe laschweng 1
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
1 -
Salut,

Les deux solutions fonctionnent avec les années bisextilles???
Je vais allé déclarer les variables !

Merci encore

Bye
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
le résultat est correct....
n'oublie pas de déclarer tes variables :

Dim année_nais As Integer
Dim mois_nais As Integer
Dim jour_nais As Integer
Dim année As Integer
Dim mois As Integer
Dim jour As Integer

à noter que tu pourrais faire :
Public Function age(DateNaissance As Date) as integer
age = Int(DateDiff("d", DateNaissance, Date) / 365.25)
End Function
philippe laschweng 1
Messages postés
278
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
13 avril 2013
1 -
Source intéressante ! Je me suis permis de la transformer en fonction !

Public Function age(DateNaissance As Date)
Dim a As Integer

année_nais = DateTime.Year(DateNaissance)
mois_nais = DateTime.Month(DateNaissance)
jour_nais = DateTime.Day(DateNaissance)

année = DateTime.Year(Date)
mois = DateTime.Month(Date)
jour = DateTime.Day(Date)

a = année - année_nais

If mois_nais > mois Then age = a - 1
If mois_nais < mois Then age = a
If mois_nais = mois Then GoTo line1

GoTo lastline
line1:
If jour_nais > jour Then age = a - 1
If jour_nais <jour Then age a

lastline:
End Function
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
Tu fais bien de parler, Sibelle, vu l'utilisté de ce que tu met sur le site.

Au contraire, il est illogique de stocker l'age d'une personne dans une base de données !! Par contre, la date de naissance, qui elle ne change pas a lieu de l'etre. Pour connaitre l'age d'une personne, il ne te reste plus qu'a calculer, comme le fait Calisaga.

Le Soft en lui même n'est pas utile. Le script utilisé l'est déjà plus....
Sibelle07
Messages postés
206
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
25 mars 2005
-
l'idée est bonne mais je ne voit pas a quoi sela me sert t'il :o
5 / 10
dbhorus
Messages postés
1
Date d'inscription
jeudi 29 mai 2003
Statut
Membre
Dernière intervention
29 mai 2003
-
mais à quoi il te sert ce prog ?
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
oui, encore des divisions en perspectives....
sebleboss2002
Messages postés
189
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
3 avril 2005
-
mouai.... jusque là, tout va bien. Mais ce serait encore plus mieux de donner le nombre de jours mois et années d'une personne.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
exact, tu retire la virgule si ca t'amuses, mais j'ai effectivement 19 ans.....
sebleboss2002
Messages postés
189
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
3 avril 2005
-
Alors tu as 19,4086242299795 ans, si j'ai bien compris ;)
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
et moi qui pensait que ca suffisait ! :

AgeDeRenfield = ( date - cdate("31/12/1983"))/365.25

soit le nombre de jours entre les dates , divisé par 365.25 (année bisextiles)

bon, c'est pas parfait, mais ca fonctionne.......
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
58 -
ce serait bien de donner la declaration de ta procédure ...(qui ferait mieux , d'ailleurs d'être une fonction)