Fini les divisions par 365,25 ! Calculez un âge exact avec précision

Cet article en deux mots :

Marre des calculs d'âge approximatifs basés sur une division par 365,25 ? Apprenez à maîtriser la fonction YRDIF sous SAS pour obtenir un résultat d'une précision chirurgicale. Ce guide rapide vous montre comment automatiser la gestion des années bissextiles et extraire l'âge au dernier anniversaire en quelques lignes de code seulement.

Le Problème L'ancienne méthode pour calculer un âge consistait à soustraire la date de naissance de la date actuelle, puis à diviser par 365,25. Malheureusement, cette méthode manque de précision à cause de la gestion des années bissextiles.


La Solution Utilisez la fonction YRDIF introduite dans SAS 9 et améliorée depuis SAS 9.3.

1
2
3
4
5
data Compute_Age;
set Demographic;
Age_Exact = yrdif(DOB,'01jan2012'd);
Age_Last_Birthday = int(Age_Exact);
run;

En Bref

  • La fonction YRDIF prend en compte la date la plus ancienne puis la plus récente pour calculer l'écart exact.
  • Depuis SAS 9.3, la fonction gère correctement l'âge par défaut sans avoir à spécifier d'arguments supplémentaires.
  • La fonction INT vous permet de tronquer le résultat pour obtenir l'âge au dernier anniversaire.


Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.