---Soumis par Dev Ashish---
Calculer l'âge.
(Q) Comment calculer l'âge d'une personne si on connaît sa date de naissance?
(A) Il y a plusieurs solutions. Je ne liste que deux d'etnre elles apparues récemment dans les groupes de discussions:
- **Soumis par Michel Walsh**
Supposant que la date de naissance est un champ nommé [BDate], de type de données date, on peut alors utiliser le calcul suivant
Age=DateDiff("yyyy", [Bdate], Now())+ _
Int( Format(now(),
"mmdd") < Format( [Bdate], "mmdd") )
Alternative: Vous pouvez utiliser la fonction suivante
Function Age(Bdate, DateToday) As Integer
' Retourne l'âge en années, entre deux dates
' Ne couvre pas des âges négatifs i.e. Bdate > DateToday
If Month(DateToday) < Month(Bdate) Or (Month(DateToday) = _
Month(Bdate) And Day(DateToday) < Day(Bdate)) Then
Age = Year(DateToday) -
Year(Bdate) - 1
Else
Age = Year(DateToday) -
Year(Bdate)
End If
End Function
---Soumis par Tim Walters---
Voici un calcul détaillé d'âge
'--- CODE START --- Public Sub CalcAge(vDate1 As Date, vdate2 As Date, ByRef vYears As Integer, ByRef vMonths As Integer, ByRef vDays As Integer) ' Commentaire : calcule l'âge en an, mois, jour ' Paramètres: ' vDate1 - date de naissance. ' vDate2 - date pour laquelle on effectue le calcul ' vYears - nombre d'ans ' vMonths - nombre de mois ' vDays - nombre de jours vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then ' dû à la façon bizarre de calculer utilsé par DateDiff, corriger si requis vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 ' division entière vMonths = vMonths Mod 12 ' ce qui reste End Sub '--- CODE END ---