LE TEMPS ENTRE DEUX DATES
par Charles Hubert

 

Les dates

Les calculs sur les dates rencontrent la difficulté des années et des mois de tailles variables. On peut simplifier ces calculs en codant toutes les dates en jours comptés à partir d'une référence ; j'ai choisi celle-ci au 01 Mars 2000 pour deux raisons :

1) C'est une date contemporaine et le nombre de jours reste petit en valeur absolue dans les applications ;

2) Les fonctions de conversion sont plus simples.

Le nombre de jours antérieurement à la référence est négatif, mais cela n'a aucune importance. Les deux conversions sont assurées par les fonctions "JRDAT" et "DATJR" qu'on utilise de la manière suivante :

 

Notre calendrier insère un 29 Février les années bissextiles. Les deux fonctions simplifient le travail en décalant l'année de manière à la commencer le 01 Mars, considéré comme jour zéro du mois zéro ; alors le jour supplémentaire se situe à la fin de cette année décalée. Explication des constantes figurant dans les fonctions :

On ne soucie pas de l'année 4000 ; une dérive d'environ 1 jour tous les 4000 ans n'a aucune importance pratique, l'humanité saura bien s'en accomoder, ou adopter un système différent.

Exemples :


et réciproquement :
 

JRDAT accepte des dates exotiques mais DATJR respecte l'usage :
 

Il est alors facile de calculer le nombre de jours entre deux dates :

On peut aussi calculer le jour de la semaine correspondant à une date :


ou bien

 

 

Le temps écoulé

Les fichiers d'APL*PLUS codent tout instant utile par le temps écoulé depuis le 01 Janvier 1900 à 0 heure, exprimé en microsecondes. Les deux conversions entre ce temps et la date et l'heure au format  sont assurées par les fonctions "MSTS" et "TSMS" qu'on utilise de la manière suivante :

 

Explication de la constante figurant dans les fonctions :

Exemple :

 

 

Le calendrier

Par exemple une fonction "Calend" génère le calendrier d'une année :

  4 Calend 2006


 

 

 

 

 

Les fonctions

On peut les trouver dans le fichier APL*PLUS 'dates.sf' ; la composante 1 contient une table des matières, les composantes suivantes contiennent les  de ces fonctions.