Genaue Altersberechnung


1

Mögliche Duplizieren:
How do I calculate someone's age in C#?

Vielleicht könnte dies albern, aber und ich habe keine Probleme mit meinem Alter, aber manchmal ist es gut, das genaue Alter zu berechnen von jemandem, ich habe mein Geburtsdatum in meinem Profil (01/12/1975) "TT/MM/JJJJ" eingeführt und es berechnet 33 und ich bin eigentlich 32 noch, ist es nicht besser, das genaue Alter zu berechnen?

Vielleicht

DateTime dt1 = DateTime.Now; 
TimeSpan dt2; 
dt2 = dt1.Subtract(new DateTime(1975, 12, 01)); 
double year = dt2.TotalDays/365; 

Das Ergebnis des Jahres ist 32,77405678074

dieser Code in Ordnung sein könnte?

0

Wenn Sie am 12. Januar 1975 geboren wurden, würden Sie heute 33 Jahre alt sein.

Wenn Sie am 1. Dezember 1975 geboren wären, wären Sie heute 32 Jahre alt.

Wenn Sie die Notiz nach dem Feld Geburtstag lesen, wenn Sie Ihr Profil bearbeiten, werden Sie sehen "YYYY/MM/DD", ich bin sicher, es wird versuchen, Daten anderer Formate zu interpretieren, aber es sieht so aus MM/TT/JJJJ (US-Standarddaten) anstelle von TT/MM/JJJJ (europäische Standarddaten). Die einfache Lösung besteht darin, das Geburtsdatum entsprechend dem vorgeschlagenen Eingabestil einzugeben.


1

Vielleicht könnte dies albern sein, aber ich habe keine Probleme mit meinem Alter, aber manchmal ist es gut, das genaue Alter von jemandem zu berechnen, ich habe mein Geburtsdatum in meinem Profil (01/12/1975) "TT/MM/JJJJ" und es hat 33 berechnet und ich bin eigentlich noch 32, ist es nicht besser das genaue Alter zu berechnen?

Meine Vermutung wäre, dass dies ein Lokalisierungs Problem ist, obwohl ich weiß nicht, wie es passieren würde, da (zumindest für mich) das Profil, das Sie Ihr Alter im Format „YYYY/MM hat ausfüllen/DD ". Aber dein Geburtstag ist ein Datum, das in traditionellen US-Einstellungen als gültiges Datum (12. Januar) gelesen wird. Dies ist also der Bereich, in den ich mich begeben würde. Ich wurde 1975 geboren, und mein Geburtstag ist nächsten Monat, und mein Alter ist richtig.


0

Eigentlich, wegen Schaltjahren, wäre Ihr Code ausgeschaltet. Da die Zeitspanne Objekt keine TotalYears Eigenschaft, um die beste Art und Weise zu bekommen hat, würde es dieses

Pardon die VB.Net

Dim myAge AS Integer = DateTime.Now.year - BirthDate.year 
If Birthdate.month < DateTime.Now.Month _ 
OrElse BirthDate.Month = DateTime.Now.Month AndAlso Birthdate.Day < DateTime.Now.Day Then 
MyAge -= 1 
END IF 

0
int ag1; 
string st, ag; 
void agecal() 
{ 
    st = TextBox4.Text; 
    DateTimeFormatInfo dtfi = new DateTimeFormatInfo(); 
    dtfi.ShortDatePattern = "MM/dd/yyyy"; 
    dtfi.DateSeparator = "/"; 
    DateTime dt = Convert.ToDateTime(st, dtfi); 
    ag1 = int.Parse(dt.Year.ToString()); 
    int years = DateTime.Now.Year - ag1; 
    ag = years.ToString(); 
    TextBox3.Text = ag.ToString(); 
}