COBOL kan tyckas gammaldags jämfört med objektorienterade språk , men det är fortfarande frodas på äldre stordatorer där dess blixtsnabba nummer - knaprande är sannolikt att säkerställa dess användning i många år framöver . För de som är bevandrade i Java eller C # , kan det komma som en chock att detta språk har inget datum primitiver , men mycket av programkoden beror på datum beroenden . Här är några tips för att hantera datum i COBOL . Instruktioner
en
förstå den grundläggande strukturen i COBOL . Varje COBOL Programmet har fyra huvuddelar som kallas divisioner . Dessa är identifiering , MILJÖ , DATA och procedur. Datumdata går i DATA Division , ett område som beskriver minnesstrukturer .
2
Bestäm hur datumen lagras på disk . Datum lagras ofta som råa siffror i formatet ÅÅÅÅMMDD . Till exempel är 10 februari 2014 typiskt lagras som 20.140.210 . Representerad i COBOL , ser dagen strukturen i DATA Division så här :
01 DATA-RECOR D. ... datafält ... 03 EVENT-DATE .05 EVENT - ÅR PIC 9999,05 EVENT - MÅNAD PIC 99.05 EVENT-DAY PIC 99 ... fler fält ..
En rad av data blir läst i DATA - RECORD elementet , som är indelad i ett antal områden . Fältet händelsen datum ( EVENT - DATE ) lagras någonstans i varje rad med data i formatet ÅÅÅÅMMDD . Datumet är indelad i år , månad och fälten dag .
3
Definiera en struktur där datum kan godtas från konsolen . Eftersom datum är oftast in i MM /DD /ÅÅÅÅ format måste strukturen återspegla detta .
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
Definiera lagring för både start- och slutdatum . Efter de datum få läsa i DATE - IN struktur , måste de formateras till formatet ÅÅÅÅMMDD . De startdatum och slutdatum strukturer kommer att hålla dessa värden .
01 START-DATE .03 START - YYYY PIC 9999,03 START - MM PIC 99.03 START-DD PIC 99 .
Skapa ett liknande struktur slutdatum med fält END - YYYY , END - MM-och END - DD .
5
Acceptera datum från konsolen eller JCL ( Job Control Language ) och formatera dem till formatet ÅÅÅÅMMDD . I Procedure Division , lägg till följande kod :
FÖRFARANDE DIVISION.0000 - START.DISPLAY " Startdatum : " ACCEPTERA DATE - IN.START - ÅÅÅÅ = ÅÅÅÅ - IN.START - MM = MM - IN . . START - DD = DD - IN
DISPLAY . " Slutdatum : " . ACCEPT DATE - IN.END - ÅÅÅÅ = ÅÅÅÅ - IN.END - MM = MM - IN.END - DD = DD - IN .
programmet startar , visas ett meddelande om startdatum är det datum värde accepterat och sedan formateras till startdatum fältet genom att tilldela varje fält för att hänvisa till dess ingång motsvarighet . Motsvarande process sker för slutdatum .
6
Läs en skiva och jämföra datumen . . Eftersom alla datum är nu i formatet ÅÅÅÅMMDD , du bara behöver jämföra strängar för att avgöra om något rekord är inom det datumintervall du just skapade
0100READ - RECORD.READ data i DATA - RECORDAT END , GÅ TILL 0900 - . END
IF EVENT - . DATE > = start-datum eller < = END - DATEPERFORM 1000 - PROCESS - DATA
Varje post blir läst i DATA - RECORD struktur , då EVENT - DATE fält får jämfört med startdatum och slutdatum fält . I det här exemplet , om postens infaller mellan start-och slutdatum , blir posten bearbetas .