Feedback

C# - Alter einer Person ermitteln

Veröffentlicht von am 3/9/2013
(2 Bewertungen)
Auf webseiten Sieht man manchmal solche Angaben wie "Ich bin 27 Jahre alt und...". Es ist natürlich nervig wenn man das an seinem Geburtstag ändern muss. Diese Methode liefert das Alter der Person in Jahren. In ASP.NET kann das Alter Beispielsweise so abgerufen werden:
<%: GetAge(new DateTime(1996, 3, 13) %>
        /// <summary>
        /// Liefert das Alter einer Person, in bezug auf den heutigen Tag.
        /// </summary>
        /// <param name="birth">Der Tag, an dem die Person geburtatag hat.</param>
        /// <returns>Die Jahre, wie alt die Person ist.</returns>
        static int GetAge(DateTime birth)
        {
            DateTime dt = DateTime.Now;
            if (dt.Month < birth.Month || dt.Month == birth.Month && dt.Day < birth.Day)
                return dt.Year - birth.Year - 1;
            else
                return dt.Year - birth.Year;
        }
Abgelegt unter Geburtstag, Alter, DateTime, TimeSpan.

2 Kommentare zum Snippet

Alf schrieb am 5/2/2013:
Hallo Koopakiller,
die Methode GetAge ist falsch. Wenn z.B. das Geburtsdatum der 01.06.2012 und das heutige Datum der 02.05.2013 ist, liefert der Rückgabewert "1". Dabei müsste es "0" sein. Der korrekte Code sieht wie folgt aus:

static int GetAge(DateTime birth)
{
DateTime dt = DateTime.Now;
if (dt.Month < birth.Month || dt.Month == birth.Month && dt.Day < birth.Day)
{
return dt.Year - birth.Year - 1;
}
else
{
return dt.Year - birth.Year;
}
}
Koopakiller schrieb am 5/2/2013:
Stimmt...ich habe es korrigiert
 

Logge dich ein, um hier zu kommentieren!