Date du jour – FUNCTION CURRENT-DATE
La fonction FUNCTION CURRENT-DATE est la méthode la plus standard et portable en COBOL pour récupérer la date et l’heure actuelles du système.
Elle renvoie toujours 21 caractères au format fixe : AAAAMMJJHHMMSSsss+HHMM (année, mois, jour, heure, minute, seconde, millièmes, décalage horaire). On peut ensuite décomposer ces informations dans une structure de données pour les utiliser facilement.
Exemple de code simple
IDENTIFICATION DIVISION.
PROGRAM-ID. DATE-DU-JOUR-SIMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 D.
03 ANNEE PIC 9(4).
03 MOIS PIC 9(2).
03 JOUR PIC 9(2).
03 FILLER PIC X(13). *> pour ignorer heure + offset
01 DATE-FORMATTEE PIC X(10) VALUE SPACES.
PROCEDURE DIVISION.
MOVE FUNCTION CURRENT-DATE TO D
STRING ANNEE "-" MOIS "-" JOUR
DELIMITED BY SIZE
INTO DATE-FORMATTEE
END-STRING
DISPLAY "Date du jour : " DATE-FORMATTEE
STOP RUN.
Sortie attendue (exemple)
Date du jour : 2026-01-28
Explication détaillée pour débutants
01 D.et ses sous-champs
On déclare une structureDqui va recevoir les 21 caractères deFUNCTION CURRENT-DATE.
On ne définit que les 3 premiers champs (année, mois, jour) et on met unFILLERpour absorber le reste (heure + offset).MOVE FUNCTION CURRENT-DATE TO D
Appel de la fonction et copie directe du résultat dans la structure.
Grâce à la correspondance des positions,ANNEEreçoit les 4 premiers chiffres,MOISles 2 suivants, etc.STRING ANNEE "-" MOIS "-" JOUR ... INTO DATE-FORMATTEE
On construit une date lisible au formatAAAA-MM-JJen insérant des tirets entre les parties.DISPLAY "Date du jour : " DATE-FORMATTEE
Affichage du résultat final. La variableDreste intacte et peut être réutilisée pour d’autres calculs.
Variantes utiles :
- Si vous voulez aussi l’heure : ajoutez les champs
HEURE PIC 9(2),MINUTE PIC 9(2), etc. - Pour une version encore plus courte (juste AAAAMMJJ) : déclarez
PIC X(8)etMOVE FUNCTION CURRENT-DATE(1:8) TO MA-DATE-8.