COBOL peut sembler démodé par rapport aux langages orientés objet , mais il se développe toujours sur des mainframes existants où son ultra-rapide à coup de chiffres est susceptible de garantir son utilisation pour les années à venir. Pour ceux qui sont versés dans Java ou C #, il peut venir comme un choc que cette langue n'a pas de primitives de date , mais une grande partie du code d'application dépend des dépendances de date. Voici quelques conseils pour gérer les dates en COBOL . Instructions
1
comprendre la structure de base de COBOL . Chaque programme COBOL comporte quatre grandes sections appelées divisions . Ce sont IDENTIFICATION , DE L'ENVIRONNEMENT , DES DONNÉES ET PROCÉDURE . Les données de date va dans la division DATA , une zone qui décrit des structures de mémoire .
2
Déterminer comment les dates sont stockées sur le disque. Les dates sont souvent stockées sous forme de données brutes au format AAAAMMJJ . Par exemple 10 Février 2014, ne sera généralement stocké sous forme de 20.140.210 . Représenté en COBOL , la structure de date dans la division DATA ressemble à ceci:
01 DATA-RECOR D. ... des champs de données ... 03 EVENT-DATE .05 CAS ANS PIC 9999,05 CAS MOIS PIC 99,05 EVENT-DAY PIC 99 ... plus de champs ..
Une ligne de données est lu dans l'élément du jeu de données , qui se subdivise en un certain nombre de domaines. La date de l'événement sur le terrain ( CAS - DATE) est stocké quelque part dans chaque ligne de données dans le format AAAAMMJJ. La date est subdivisé en année, le mois et les champs de la journée.
3
définir une structure où les dates peuvent être acceptés à partir de la console. Comme les dates sont généralement entrés dans le format MM /JJ /AAAA, la structure doit refléter cette réalité.
01 DATE-IN .03 MM -IN PIC 99,03 FILLER PIC X.03 DD -IN PIC 99,03 FILLER PIC X. 03 YYYY-IN PIC 9999.
4
définir le stockage pour les dates de début et date de fin. Après les dates se lisent dans le DATE - dans la structure , ils doivent être reformatés au format AAAAMMJJ . Les structures date de début et date de fin tiendront ces valeurs.
01 START-DATE .03 START- AAAA PIC 9999,03 START- MM PIC 99,03 START-DD PIC 99.
Créer un structure similaire date de fin de champs FIN - AAAA, FIN -MM -JJ et à la fin .
5
Accepter les dates de la console ou JCL (Job Control Language ) et les reformater au format AAAAMMJJ . Dans la Division de la procédure , ajoutez le code suivant : PROCEDURE
DIVISION.0000 - START.DISPLAY "Date de début: " Acceptez la date - IN.START -AAAA = AAAA- MM - IN.START = MM -IN . . START- DD = DD -IN
DISPLAY. "Date de fin: " . Acceptez la date - IN.END -AAAA = AAAA- MM - IN.END = MM -JJ - IN.END = DD -IN .
le programme démarre , un message vous invite à la date de début , la valeur de la date est acceptée et ensuite reformaté dans le champ date de début en attribuant à chaque domaine se référer à son homologue d'entrée. Le processus équivalent est fait pour la date de fin.
6
lire un enregistrement et comparer les dates. . Parce que toutes les dates sont maintenant au format AAAAMMJJ , vous ne devez comparer des chaînes de déterminer si un enregistrement est dans la plage de dates que vous venez de créer
DATA 0100READ - RECORD.READ en données RECORDAT - END , allez à 0900 - . End of
SI LA MANIFESTATION - . DATE > = date de début ou < = FIN DATEPERFORM 1000 -PROCESS -DATA
Chaque enregistrement est lu dans la structure du jeu de données , puis le champ EVENT- DATE obtient par rapport à la date de fin des champs date de début et . Dans cet exemple, si la date de l'enregistrement est entre la date de début et de fin, l' enregistrement se fait traiter.