Wie berechnet man das Alter in Jahren (Wochen)?
Sub Beispiel()
Dim lWeeks As Long
Dim lAge As Long
lAge = Age(CDate("01.01.1970"), lWeeks)
Debug.Print "Alter:"; lAge; "Jahre bzw."; lWeeks; "Wochen"
End Sub |
Function Age(ByVal dtBirthday As Date, _
Optional ByRef lWeeks As Long) As Long
'// -----------------------------------------------------------------
'// Methode: | Ermittelt das Alter in Jahren und optional in Wochen
'// -----------------------------------------------------------------
'// Parameter: | dtBirthday - gültiges (Geburts)Datum
'// | lWeeks - optionale Rückgabevariable für Wochen
'// -----------------------------------------------------------------
'// Rückgabe: | das Alter in Jahren; optional in Wochen (lWeeks)
'// -----------------------------------------------------------------
'// Um zwei Werte zurückgeben zu können (Alter in Jahren und
'// Monaten) wird der Parameter lWeeks als Referenz übergeben,
'// damit die aufrufende Methode diese Werte nach Durchführung
'// der Funktion auch wieder abrufen kann.
'// -----------------------------------------------------------------
On Error GoTo Err_Age
If Day(dtBirthday) <= Day(Now) Then
lWeeks = DateDiff("w", dtBirthday, Now)
Else
lWeeks = DateDiff("w", dtBirthday, Now) - 1
End If
Age = Year(Now) - Year(dtBirthday) + _
(DateSerial(Year(Now), Month(dtBirthday), _
Day(dtBirthday)) > Now)
Exit_Age:
Exit Function
Err_Age:
Age = 0
lWeeks = 0
Resume Exit_Age
End Function |
Zurück zu Tipps und Tricks
|