SAS : Maîtrisez Enfin le Calcul et la Projection de Dates avec INTCK et INTNX

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Stéphanie

Le Conseil de l'Expert

Stéphanie
Spécialiste Machine Learning et IA.

Ce script illustre la maîtrise du duo incontournable de l'arithmétique calendaire sous SAS : INTCK et INTNX. L'expert notera que INTCK ne se contente pas de mesurer une durée brute, mais compte le nombre de frontières temporelles traversées (essentiel pour le reporting fiscal ou l'ancienneté). À l'inverse, INTNX est l'outil de projection par excellence, capable de calculer des échéances lointaines (comme une retraite) en gérant nativement les complexités du calendrier, telles que les années bissextiles, sans formule mathématique manuelle

Ce script illustre la manipulation de dates SAS© via deux étapes DATA. La première utilise la fonction INTCK pour calculer des intervalles (années, mois, semaines, trimestres) entre deux dates fixes. La seconde utilise la fonction INTNX pour projeter une date future (ajout de 60 ans) à partir d'une date initiale.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées statiquement dans le code à l'aide de littéraux de date (ex: '24NOV1996'd).

1 Bloc de code
DATA STEP Data
Explication :
Création de la table temporaire 'intervals'. Calcul du nombre d'unités de temps (années, mois, etc.) écoulées entre la date de naissance et le 29 septembre 2006 avec INTCK.
Copié !
1DATA intervals;
2 birthdate = '24NOV1996'd;
3 yrs = intck('year',birthdate,'29Sep2006'd);
4 months = intck('month',birthdate,'29Sep2006'd);
5 weeks = intck('week',birthdate,'29Sep2006'd);
6 qtrs = intck('qtr',birthdate,'29Sep2006'd);
7 put _all_;
8RUN;
2 Bloc de code
DATA STEP Data
Explication :
Création de la table temporaire 'increment'. Calcul de la date de retraite en ajoutant 60 ans à la date de naissance via INTNX, et application du format date9.
Copié !
1DATA increment;
2 birthdt = '22oct91'd;
3 retirement = intnx('year',birthdt,60);
4 FORMAT birthdt retirement date9.;
5RUN;
L'Astuce Pro
Attention, par défaut la fonction INTCK compte le nombre de frontières temporelles franchies (du 31 décembre au 1er janvier compte pour un an) et non la durée réelle ; pour obtenir un âge exact ou une durée révolue, pensez à utiliser le modificateur 'C' (Continuous) en quatrième argument de la fonction.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.

Documentation liée

Aucune documentation spécifique pour cette catégorie.