Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calcul ages

11 réponses
Avatar
Jo
Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de naissance
j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance, Date)
mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci

10 réponses

1 2
Avatar
David
Bonjour,

J'ai mis à votre intention un bout de programme
qui calcule le nbre d'année, de mois et de jours
entre 2 dates.
A vous de jouer avec les dates de la ligne call age(
puis de modifier la présentation pour en faire ce que vous voulez :

http://users.skynet.be/DAVID/Fichiers_Tempo.htm

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"Jo" a écrit dans le message de news:

Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de naissance
j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance, Date)
mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci




Avatar
Jean-marc
Jo wrote:
Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de
naissance j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance,
Date) mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci



Hello,

les articles 84 et 154 de la FAQ contiennent de nombreux exemples
des fonctions de Date de VB:
http://faq.vb.free.fr/index.php?question„
http://faq.vb.free.fr/index.php?question4

Ces articles incluent également de très nombreux liens vers
la documentation de ces fonctions de dates.

Enfin ces articles montrent comment créer de nouvelles fonctions
à partir des fonctions de base.

Pour en revenir à ton cas précis, une bonne implémentation
a été donnée par Renfield sur VBFrance:

Age = val(datediff("D", DateNaissance, DateJour)/365.25)

Tu peux retrouver la discussion complète ici:
http://www.vbfrance.com/codes/CALCUL-AGE_38683.aspx

Bonne prog!

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jo
Merci pour cette reponse rapide et efficace
c'est tout a fait ce que je recherchais
un grand merci

Jo


"David" a écrit dans le message de groupe de discussion
: O$
Bonjour,

J'ai mis à votre intention un bout de programme
qui calcule le nbre d'année, de mois et de jours
entre 2 dates.
A vous de jouer avec les dates de la ligne call age(
puis de modifier la présentation pour en faire ce que vous voulez :

http://users.skynet.be/DAVID/Fichiers_Tempo.htm

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"Jo" a écrit dans le message de news:

Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de naissance
j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance, Date)
mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci








Avatar
Jo
Bonjour,
Merci pour cette reponse, j'avais essai:
iÚteDiff("d", RcPersonne!DateNaissance, Date) / 365)
donc sans le val et le .25
mais le resultat etait faux (ex: 18/07/2008 me donnait 5)
de meme avec i=Val(DateDiff("d", RcPersonne!DateNaissance, Date) / 365.25)
donc avec ton exemple voici ce que j'ai:
je controle si le mois/année est different de la date pour eviter ce 5 ou
autre
If Mid(RcPersonne!DateNaissance, 4) <> Mid(Date, 4) Then
i=Val(DateDiff("D", RcPersonne!DateNaissance, Date) / 365.25)
Else
i=0
End If

avec ca je pense que sa ira car la c'est vrai il ne me faut que l'age pour
ce logiciel
mais l'exemple de david me servira pour un autre logiciel ou la j'aurais
besoin de l'age/jour/mois

merci a vous deux pour vos exemples

Jo


"Jean-marc" a écrit dans le message de groupe de
discussion : 488330e7$0$2856$
Jo wrote:
Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de
naissance j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance,
Date) mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci



Hello,

les articles 84 et 154 de la FAQ contiennent de nombreux exemples
des fonctions de Date de VB:
http://faq.vb.free.fr/index.php?question„
http://faq.vb.free.fr/index.php?question4

Ces articles incluent également de très nombreux liens vers
la documentation de ces fonctions de dates.

Enfin ces articles montrent comment créer de nouvelles fonctions
à partir des fonctions de base.

Pour en revenir à ton cas précis, une bonne implémentation
a été donnée par Renfield sur VBFrance:

Age = val(datediff("D", DateNaissance, DateJour)/365.25)

Tu peux retrouver la discussion complète ici:
http://www.vbfrance.com/codes/CALCUL-AGE_38683.aspx

Bonne prog!

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Avatar
Eric
Bonjour,

J'arrive après la bataille mais pour avoir l'age en année pleine, on
peut ausssi utiliser la formule :
Age = DateDiff("yyyy", LaDate, Date) _
+ (Format(Date, "mmdd") < Format(LaDate, "mmdd"))

Ex:
MsgBox DateDiff("yyyy", #10/21/2006#, Date) _
+ (Format(Date, "mmdd") < Format(#10/21/2006#, "mmdd"))
renverra 1

Jo a écrit :
Bonjour,
Merci pour cette reponse, j'avais essai:
iÚteDiff("d", RcPersonne!DateNaissance, Date) / 365)
donc sans le val et le .25
mais le resultat etait faux (ex: 18/07/2008 me donnait 5)
de meme avec i=Val(DateDiff("d", RcPersonne!DateNaissance, Date) / 365.25)
donc avec ton exemple voici ce que j'ai:
je controle si le mois/année est different de la date pour eviter ce 5
ou autre
If Mid(RcPersonne!DateNaissance, 4) <> Mid(Date, 4) Then
i=Val(DateDiff("D", RcPersonne!DateNaissance, Date) / 365.25)
Else
i=0
End If

avec ca je pense que sa ira car la c'est vrai il ne me faut que l'age
pour ce logiciel
mais l'exemple de david me servira pour un autre logiciel ou la j'aurais
besoin de l'age/jour/mois

merci a vous deux pour vos exemples

Jo


"Jean-marc" a écrit dans le message de groupe de
discussion : 488330e7$0$2856$
Jo wrote:
Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de
naissance j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance,
Date) mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci



Hello,

les articles 84 et 154 de la FAQ contiennent de nombreux exemples
des fonctions de Date de VB:
http://faq.vb.free.fr/index.php?question„
http://faq.vb.free.fr/index.php?question4

Ces articles incluent également de très nombreux liens vers
la documentation de ces fonctions de dates.

Enfin ces articles montrent comment créer de nouvelles fonctions
à partir des fonctions de base.

Pour en revenir à ton cas précis, une bonne implémentation
a été donnée par Renfield sur VBFrance:

Age = val(datediff("D", DateNaissance, DateJour)/365.25)

Tu peux retrouver la discussion complète ici:
http://www.vbfrance.com/codes/CALCUL-AGE_38683.aspx

Bonne prog!

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;









--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Jo
Bonjour,
je ne sais que dire tous les exemples qui
m'ont etait donné fonctionne parfaitement
et vous remercie tous les 3 de vos reponses
celui ci a l'avantage d'etre plus court
que celui que j"avais realiser avec les exemples
pour le resultat attendu.

encore merci
Jo

"Eric" a écrit dans le message de groupe de
discussion : #
Bonjour,

J'arrive après la bataille mais pour avoir l'age en année pleine, on peut
ausssi utiliser la formule :
Age = DateDiff("yyyy", LaDate, Date) _
+ (Format(Date, "mmdd") < Format(LaDate, "mmdd"))

Ex:
MsgBox DateDiff("yyyy", #10/21/2006#, Date) _
+ (Format(Date, "mmdd") < Format(#10/21/2006#, "mmdd"))
renverra 1

Jo a écrit :
Bonjour,
Merci pour cette reponse, j'avais essai:
iÚteDiff("d", RcPersonne!DateNaissance, Date) / 365)
donc sans le val et le .25
mais le resultat etait faux (ex: 18/07/2008 me donnait 5)
de meme avec i=Val(DateDiff("d", RcPersonne!DateNaissance, Date) /
365.25)
donc avec ton exemple voici ce que j'ai:
je controle si le mois/année est different de la date pour eviter ce 5
ou autre
If Mid(RcPersonne!DateNaissance, 4) <> Mid(Date, 4) Then
i=Val(DateDiff("D", RcPersonne!DateNaissance, Date) / 365.25)
Else
i=0
End If

avec ca je pense que sa ira car la c'est vrai il ne me faut que l'age
pour ce logiciel
mais l'exemple de david me servira pour un autre logiciel ou la j'aurais
besoin de l'age/jour/mois

merci a vous deux pour vos exemples

Jo


"Jean-marc" a écrit dans le message de groupe de
discussion : 488330e7$0$2856$
Jo wrote:
Bonjour a tour,
je cherche le moyen de calculer l'ages a partir de la date de
naissance j'ai essayé i = DateDiff("yyyy", RcPersonne!DateNaissance,
Date) mais sa ne tient pas compte du jour et du mois donc c'est faux
et suis perdu dans le format des dates si quelqu'un aurait un
exemple pour m'aider
Merci



Hello,

les articles 84 et 154 de la FAQ contiennent de nombreux exemples
des fonctions de Date de VB:
http://faq.vb.free.fr/index.php?question„
http://faq.vb.free.fr/index.php?question4

Ces articles incluent également de très nombreux liens vers
la documentation de ces fonctions de dates.

Enfin ces articles montrent comment créer de nouvelles fonctions
à partir des fonctions de base.

Pour en revenir à ton cas précis, une bonne implémentation
a été donnée par Renfield sur VBFrance:

Age = val(datediff("D", DateNaissance, DateJour)/365.25)

Tu peux retrouver la discussion complète ici:
http://www.vbfrance.com/codes/CALCUL-AGE_38683.aspx

Bonne prog!

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;









--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Modeste
Bonsour® Jo avec ferveur ;o))) vous nous disiez :

je ne sais que dire tous les exemples qui
m'ont etait donné fonctionne parfaitement
et vous remercie tous les 3 de vos reponses
celui ci a l'avantage d'etre plus court
que celui que j"avais realiser avec les exemples
pour le resultat attendu.


;o)))
alors une derniere pour le fun
Msgbox Int((DateRef-DateN) / 365.25)&" an(s) "&Int(MOD((DateRef-DateN) / (365.25 / 12),12)) & " mois "&Int(MOD((DateRef-DateN), 365.25 / 12))& " jour(s)"

--
@+
;o)))
Avatar
Jacques93
Bonjour Modeste,
Modeste a écrit :
Bonsour® Jo avec ferveur ;o))) vous nous disiez :

je ne sais que dire tous les exemples qui
m'ont etait donné fonctionne parfaitement
et vous remercie tous les 3 de vos reponses
celui ci a l'avantage d'etre plus court
que celui que j"avais realiser avec les exemples
pour le resultat attendu.


;o)))
alors une derniere pour le fun
Msgbox Int((DateRef-DateN) / 365.25)&" an(s) "&Int(MOD((DateRef-DateN) / (365.25 / 12),12)) & " mois "&Int(MOD((DateRef-DateN), 365.25 / 12))& " jour(s)"




Tssss, Tssss, nous sommes sur un forum VB6, pas Excel ;-)

<http://msdn.microsoft.com/fr-fr/library/se0w9esz.aspx>

mais j'aime bien :

MsgBox Int((DateRef - DateN) / 365.25) & " an(s) " & _
Int((DateRef - DateN) / (365.25 / 12) Mod 12) & " mois " & _
Int((DateRef - DateN) Mod (365.25 / 12)) & " jour(s)"

qui me rajeunis de 2 jours, toujours ça de pris :-D

--

Cordialement,

Jacques.
Avatar
Modeste
Bonsour® Jacques93 avec ferveur ;o))) vous nous disiez :

Tssss, Tssss, nous sommes sur un forum VB6, pas Excel ;-)



mais j'aime bien :
MsgBox Int((DateRef - DateN) / 365.25) & " an(s) " & _
Int((DateRef - DateN) / (365.25 / 12) Mod 12) & " mois " & _
Int((DateRef - DateN) Mod (365.25 / 12)) & " jour(s)"
qui me rajeunis de 2 jours, toujours ça de pris :-D



;O)
ton age reste cependant toujours le nombre de jours compris entre DateRef et DateN !!!

pour plus de précision ;o))) au lieu de 365.25 on aurait pu utiliser la durée d'une année tropique : 365,242 190 517 jours
et appliquer une légère correction (actuellement diminution d'environ 0,53 s par siècle).
;O)

Comme déja souvent évoqué sur MPFE, définir un age en années, mois, jours est une notion totalement inconsistante ...
Sachant que les mois ont parfois 31, 30, 29 ou 28 jours,
les années 365 ou 366 jours.
Une personne agée de 40 ans 5 mois 12 jours
selon le mode de calcul choisi, peut avoir un age (en jours) pouvant varier de 4 jours
en fonction de la date de reference , le mois de naisssance ou l'année de naissance

VB , VBA , C ou autres langages seul l'age en jours est pertinent et significatif ...
;o)))
--
@+
;o)))
Avatar
Vincent Guichard
Modeste a écrit :
VB , VBA , C ou autres langages seul l'age en jours est pertinent et si gnificatif ...
;o)))



La durée d'une journée étant variable (cf
http://fr.wikipedia.org/wiki/Seconde_intercalaire), je propose qu'on
calcule désormais les âges en secondes. :)

Vincent Guichard
1 2