Maison >interface Web >js tutoriel >Comment puis-je calculer efficacement l'âge à partir d'une chaîne de date AAAAMMJJ ?

Comment puis-je calculer efficacement l'âge à partir d'une chaîne de date AAAAMMJJ ?

DDD
DDDoriginal
2024-12-17 20:08:16191parcourir

How Can I Efficiently Calculate Age from a YYYYMMDD Date String?

Calculer l'âge en utilisant la date de naissance au format AAAAMMJJ

Le calcul de l'âge d'un individu en fonction de sa date de naissance est une tâche de programmation courante. Étant donné une date de naissance au format AAAAMMJJ, de nombreuses approches peuvent être utilisées. La question explore une solution alternative à celle actuellement utilisée :

var dob = '19800810';
var year = Number(dob.substr(0, 4));
var month = Number(dob.substr(4, 2)) - 1;
var day = Number(dob.substr(6, 2));
var today = new Date();
var age = today.getFullYear() - year;
if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
  age--;
}
alert(age);

La solution proposée résout le problème avec la méthode substr, offrant une approche plus concise et optimisée :

function getAge(dateString) {
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}

Cette fonction simplifie le calcul en utilisant directement l'objet Date pour construire la date de naissance et extraire les informations nécessaires. Il vérifie également les scénarios dans lesquels le mois et le jour de naissance ne se sont pas encore produits dans l'année en cours, décrémentant l'âge en conséquence.

Bien que la solution d'origine soit fonctionnelle, elle utilise la méthode substr pour extraire les composants de date, qui peut prêter à confusion et à des erreurs potentielles. La fonction proposée offre une méthode plus simple et plus efficace pour calculer l'âge en fonction d'une date de naissance fournie au format AAAAMMJJ.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn