kzen.dev
  • Questions
  • Tags
  • Utilisateurs
Notifications
Récompenses
Inscription
Une fois inscrit, vous serez informé des réponses et des commentaires à vos questions.
Connectez-vous
Si vous avez déjà un compte, connectez-vous pour vérifier les nouvelles notifications.
Il y aura des récompenses pour les questions, réponses et commentaires ajoutés.
Détails
Source
Editer
Jeff Atwood
Jeff Atwood
Question

Comment calculer l'âge d'une personne en C# ?

Étant donné une DateTime représentant l'anniversaire d'une personne, comment puis-je calculer son âge en années ?

1742 2008-07-31T23:40:59+00:00 3
Yvette Colomb
Yvette Colomb
Question modifiée 21 avril 2018 в 5:48
Programmation
datetime
.net
c#
Vidéos populaires
How do I calculate someone's age in C#
How do I calculate someone's age in C#
il y a 6 ans
COMMENT CALCULER VOTRE AGE EN C sharp.mp4
COMMENT CALCULER VOTRE AGE EN C sharp.mp4
il y a 5 ans
Calculer l'age est afficher dans une label
Calculer l'age est afficher dans une label
il y a 8 ans
« Précédent
Suivant »
Cette question a 1 réponse en anglais, pour les lire connectez-vous à votre compte.
Solution / Réponse
Mike Polen
Mike Polen
4 août 2008 в 4:50
2008-08-04T16:50:06+00:00
Détails
Source
Editer
#8406079

Une solution simple et facile à comprendre.

// Save today's date.
var today = DateTime.Today;
// Calculate the age.
var age = today.Year - birthdate.Year;
// Go back to the year the person was born in case of a leap year
if (birthdate.Date > today.AddYears(-age)) age--;

Cependant, cela suppose que vous recherchez l'idée occidentale de l'âge et que vous n'utilisez pas le [calcul de l'Asie de l'Est][1].

[1] : https://en.wikipedia.org/wiki/East_Asian_age_reckoning

 MadSkunk
MadSkunk
Réponse modifiée 23 avril 2019 в 10:06
East Asian age reckoning - Wikipedia
en.wikipedia.org
2008
0
Michael Stum
Michael Stum
1er août 2008 в 9:46
2008-08-01T21:46:12+00:00
Détails
Source
Editer
#8406078

Une autre fonction, pas de moi mais trouvée sur le web et que j'ai un peu affinée :

public static int GetAge(DateTime birthDate)
{
    DateTime n = DateTime.Now; // To avoid a race condition around midnight
    int age = n.Year - birthDate.Year;

    if (n.Month < birthDate.Month || (n.Month == birthDate.Month && n.Day < birthDate.Day))
        age--;

    return age;
}

Juste deux choses qui me viennent à l'esprit : Qu'en est-il des personnes venant de pays qui n'utilisent pas le calendrier grégorien ? DateTime.Now est dans la culture spécifique au serveur je pense. Je n'ai absolument aucune connaissance sur la façon de travailler avec les calendriers asiatiques et je ne sais pas s'il existe un moyen facile de convertir les dates entre les calendriers, mais juste au cas où vous vous poseriez des questions sur ces Chinois de l'année 4660 :-)

Sai Gudigundla
Sai Gudigundla
Réponse modifiée 25 juillet 2017 в 5:11
72
0
Nick Berardi
Nick Berardi
1er août 2008 в 12:07
2008-08-01T12:07:19+00:00
Détails
Source
Editer
#8406077

La meilleure façon que je connaisse, à cause des années bissextiles et tout le reste, est la suivante :

DateTime birthDate = new DateTime(2000,3,1);
int age = (int)Math.Floor((DateTime.Now - birthDate).TotalDays / 365.25D);

J'espère que cela vous aidera.

Nick Berardi
Nick Berardi
Réponse modifiée 1er août 2008 в 3:26
36
0
Ajouter une question
Catégories
Toutes
Technologie
Culture / Loisirs
Vie / Arts
Science
Professionnel
Entreprises
Utilisateurs
Tous
Nouveau
Populaire
1
Роман Азаров
Enregistré il y a 1 semaine
2
Mansur Zakirov
Enregistré il y a 1 semaine
3
Тагир Мамедов
Enregistré il y a 1 semaine
4
Алексей Толманов
Enregistré il y a 1 semaine
5
Valeriu Vodnicear
Enregistré il y a 3 semaines
DE
EL
ES
FR
ID
IT
JA
KO
NL
PT
RO
RU
SK
TR
UK
ZH
© kzen.dev 2023
Source
stackoverflow.com
sous licence cc by-sa 3.0 avec l'attribution