COBOL kan virke gammeldags i forhold til objekt-orienterede sprog , men det stadig trives på legacy mainframes , hvor dens lynhurtige talknusende er sandsynligt at sikre dens anvendelse i mange år fremover . For dem bevandret i Java eller C # , kan det komme som et chok, at dette sprog ikke har nogen dato primitiver , men meget af ansøgningen kode afhænger dato afhængigheder. Her er et par tips til håndtering af datoer i COBOL . Instruktioner
1
Forstå den grundlæggende struktur i COBOL . Hvert COBOL program har fire store sektioner, der kaldes divisioner . Disse er IDENTIFIKATION , MILJØ , DATA og procedure. Dato data går i DATA Division , et område, der beskriver hukommelse strukturer.
2
Bestem hvordan datoerne er gemt på disken. Datoer er ofte gemt som rå tal som ååååmmdd . For eksempel er februar 10, 2014 lagres typisk som 20.140.210 . Repræsenteret i COBOL , datoen struktur i DATA Division ligner dette : Hej
01 DATA-RECOR D. ... datafelter ... 03 EVENT-DATE .05 EVENT -ÅRS PIC 9999,05 EVENT - MÅNED PIC 99.05 EVENT-DAY PIC 99 ... flere felter ..
række data bliver læst ind i DATA - RECORD element , som er opdelt i en række områder . Feltet begivenhed dato ( EVENT - dato) er gemt et sted i hver række af data i ÅÅÅÅMMDD format. Datoen er opdelt i år, måned og dag felter.
3
Definer en struktur, hvor de datoer kan accepteres fra konsollen . Fordi datoer normalt er optaget i MM /DD /YYYY format, skal strukturen afspejle dette.
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
Definer opbevaring til både start- og slutdato . Efter de datoer bliver læst ind i DATO -IN struktur , skal de formateres til ÅÅÅÅMMDD format. START- dato og slutdato strukturer vil holde disse værdier.
01. START-DATE .03 START -ÅÅÅÅ PIC 9999,03 START -MM PIC 99,03 START-DD PIC 99. .
Opret en lignende struktur slutdato med felter END -ÅÅÅÅ , ULTIMO mM og END -DD .
5.
Accepter de datoer fra konsollen eller JCL (Job Control Language ) og omformatere dem til ÅÅÅÅMMDD format. I proceduren Division , tilføje følgende kode : Hej
PROCEDURE DIVISION.0000 - START.DISPLAY "Start Date: " ACCEPTERE DATE - IN.START -ÅÅÅÅ = ÅÅÅÅ- IN.START -MM = MM- IN. . START -DD = DD -IN
DISPLAY. " Slutdato: " . ACCEPTERE DATE - IN.END -ÅÅÅÅ = ÅÅÅÅ- IN.END -MM = MM- IN.END -DD = DD -IN .
programmet starter en meddelelse beder om startdato er den dato accepterede værdi og derefter omformateret i START - dATE felt ved at tildele hvert felt for at henvise til sin input modstykke. Den tilsvarende proces er gjort for slutdatoen.
6
Læs en rekord og sammenligne datoer. . Fordi alle datoer er nu i ååååmmdd , behøver du kun sammenligne strenge at afgøre, om en post er inden for det datointerval, du lige har oprettet
0100READ - RECORD.READ data i DATA - RECORDAT END , GÅ TIL 0900 - . SLUT
IF EVENT - . DATO > = START -date eller <= END - DATEPERFORM 1000 PROCES - DATA
Hver post bliver læst ind i DATA - rECORD struktur , så Arrangementet - DATE felt bliver sammenlignet med START - dato og slutdato felter. I dette eksempel, hvis posten dato er mellem start-og slutdato får posten behandles.