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

All Rights Reserved 2006. http://www.rolffs.de Design by Rolffs WebDesign
Datenschutzerklärung