calcul de l'âge exact


1

Possible en double:
How do I calculate someone's age in C#?

Peut-être que cela pourrait être idiot, mais je n'ont pas de problèmes avec mon âge, mais parfois il est bon de calculer l'âge exact de quelqu'un, j'ai introduit ma date de naissance dans mon profil (01/12/1975) "jj/mm/aaaa" et il a calculé 33 et j'ai 32 ans encore, n'est-il pas préférable de calculer l'âge exact?

Peut-être

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

Le résultat de l'année est 32,77405678074

ce code pourrait être OK?

0

Si vous êtes né le 12 Janvier 1975 vous serait 33 ans aujourd'hui.

Si vous êtes né le 1er décembre 1975, vous auriez 32 ans aujourd'hui. Si vous lisez la note par le champ anniversaire lors de la modification de votre profil, vous verrez "AAAA/MM/JJ", je suis sûr qu'il va essayer d'interpréter les dates des autres formats mais il semble qu'il interprète MM/JJ/AAAA (dates standard aux États-Unis) plutôt que JJ/MM/AAAA (dates standard européennes). La solution facile consiste à entrer la date de votre anniversaire en fonction du style de saisie suggéré.


1

Peut-être que cela pourrait être bête mais je n'ai pas de problèmes avec mon âge mais parfois il est bon de calculer l'âge exact de quelqu'un, j'ai introduit ma date de naissance dans mon profil (01/12/1975) "jj/mm/aaaa" et il a calculé 33 et j'ai 32 ans encore, n'est-il pas préférable de calculer l'âge exact?

Je dirais que cela est un problème de localisation, même si je ne sais pas comment cela se passerait-il, depuis (au moins pour moi) le profil a remplir votre âge dans le format « AAAA/MM/DD ". Mais votre anniversaire est celui qui se lit comme une date valide (12 janvier) dans les paramètres traditionnels des États-Unis, donc c'est le domaine que je voudrais examiner. Je suis né en 1975, aussi, et mon anniversaire est le mois prochain, et il a mon âge.


0

En fait, à cause des années bissextiles, votre code serait désactivé. Étant donné que l'objet timespan n'a pas de propriété de TotalYears la meilleure façon de l'obtenir serait ce

Pardon le 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(); 
}