COBOL kan virke gammeldags i forhold til objektorienterte språk , men det fortsatt trives på legacy stormaskiner der sin lynraske nummer- knaser er sannsynlig å sikre bruken i årene som kommer. For de bevandret i Java eller C #, kan det komme som et sjokk at dette språket har ingen dato primitive , men mye av programmet koden er avhengig av dato avhengigheter . Her er noen tips for å administrere datoer i COBOL . Instruksjoner
en
Forstå den grunnleggende strukturen i COBOL . Hver COBOL -programmet har fire store seksjoner kalt divisjoner . Dette er Identifikasjon , MILJØ, DATA og prosedyre. Datodataene går i DATA Division , et område som beskriver minne strukturer .
2
Bestem hvor datoene er lagret på disk. Datoer lagres ofte som rå tall i formatet ÅÅÅÅMMDD . For eksempel er 10 februar 2014 vanligvis lagret som 20140210 . Representert i COBOL , ser datoen strukturen i DATA Division som dette : en
01 DATA-RECOR D. ... datafelt ... 03 EVENT-DATE 0,05 EVENT - ÅR PIC 9999,05 EVENT - MÅNED PIC 99,05 EVENT-DAY PIC 99 ... flere felt ..
En rad av data blir lest inn i DATA - RECORD element , som er delt inn i en rekke felt . Feltet hendelse dato ( EVENT - DATO ) er lagret et sted i hver rad med data i formatet ÅÅÅÅMMDD . Datoen er inndelt i år, måned og dag felt.
3
Definer en struktur hvor datoene kan bli akseptert fra konsollen . Fordi datoer blir vanligvis inngått i MM /DD /ÅÅÅÅ format, må strukturen gjenspeile dette.
01 DATE-IN 0,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 lagringsplass for både startdato og sluttdato . Etter datoene blir lest inn i DATE -IN struktur , må de være formatert til ÅÅÅÅMMDD format . Startdatoparameteren og sluttdato strukturer vil holde disse verdiene .
01 START-DATE 0,03 START - YYYY PIC 9999,03 START -MM PIC 99,03 START-DD PIC 99 .
Opprett en lignende struktur sluttdato med felt END - YYYY , END - mM og END - DD .
5
Godta datoene fra konsollen eller JCL (Job Control Language ) og formatere dem til ÅÅÅÅMMDD format . I prosedyren Division , legge til følgende kode :
PROSEDYRE DIVISION.0000 - START.DISPLAY "Start Dato: " Godta DATE - IN.START - YYYY = ÅÅÅÅ- IN.START - MM = MM -IN . . START -DD = DD -IN
DISPLAY . " Sluttdato: " . GODTA DATE - IN.END - YYYY = ÅÅÅÅ- IN.END - MM = MM - IN.END - DD = DD -IN .
programmet starter , en melding som spør om startdato, er datoen verdi akseptert og deretter formatert inn i sTART - DATE -feltet ved å tildele hvert felt for å referere til sitt innspill motstykke. Tilsvarende prosess er gjort for sluttdato .
6
Les en post og sammenligne datoene . . Fordi alle datoer er nå i ÅÅÅÅMMDD format , trenger du bare sammenligne strenger for å finne ut om noen rekord er innenfor tidsrommet du nettopp opprettet
0100READ - RECORD.READ DATA TIL DATA - RECORDAT END, GÅ TIL 0900 - . END
IF EVENT - . DATE > = START - DATE eller < = END - DATEPERFORM 1000 - PROSESS - DATA
Hver post blir lest inn i DATA - rECORD struktur , deretter den EVENT - DATE feltet blir i forhold til START - DATE og sluttdato felt. I dette eksemplet , hvis posten dato er mellom start-og sluttdato , får posten behandlet.