Rubrik: Datum/Zeit und Timer · Datums- und Zeit-Funktionen | VB-Versionen: VB.NET | 23.02.06 |
Exaktes Alter berechnen (.NET) Mit dieser Funktion lässt sich das exakte Alter anhand des übergebenen Geburtsdatums berechnen. | ||
Autor: Dieter Otter | Bewertung: | Views: 24.809 |
www.tools4vb.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit Hilfe der DateDiff-Funktion lässt sich schnell die Anzahl vergangener Jahre zweier Datums-Angaben ermitteln. Für das Berechnen des genauen Alters scheidet der normale DateDiff-Funktionsaufruf allerdings aus, da hier immer pauschal die bis Jahresende vergangenen Jahre ermittelt werden.
Möchte man allerdings das exakte Alter berechnen, gilt es den Geburtsmonat und ggf. den Tag ebenfalls zu berücksichtigen!
Und genau das macht nachfolgende Funktion. Sie errechnet das genaue Alter anhand des übergebenen Geburstags (Datum).
' exaktes Alter berechnen Public Function ExactAge(ByVal Birthday As System.DateTime) As Integer Dim nMonth As Integer Dim nYears As Integer ' Alter (Jahre) anhand Monatsdifferenz / 12 ermitteln nYears = Math.Floor(DateDiff(DateInterval.Month, Birthday, DateTime.Now) / 12) ' Wenn Geburtsmonat = aktueller Monat ' Prüfen, ob Geburstag schon war oder noch kommt ' und ggf. das Alter um 1 Jahr verringern nMonth = DatePart(DateInterval.Month, Birthday) If nMonth = DatePart(DateInterval.Month, DateTime.Now) Then If DatePart(DateInterval.Day, Birthday) > DatePart(DateInterval.Day, DateTime.Now) Then nYears += -1 End If End If Return nYears End Function
Beispiel:
' Annahme: Geburtsdatum = 13.04.1972 Dim Birthday As New System.DateTime(1972, 4, 13) MessageBox("Alter: " & ExactAge(Birthday).ToString)