Nwlapcug.com


Come controllare l'intervallo di Date in COBOL

COBOL potrebbe sembrare antiquato rispetto ai linguaggi object-oriented, ma ancora prospera su mainframe legacy dove suo fulmineo numerica è probabile garantire il suo uso per anni a venire. Per chi è esperto in Java o c#, può venire come uno shock che questo linguaggio non ha nessun primitive data, eppure molto del codice dell'applicazione dipende da dipendenze di data. Ecco alcuni suggerimenti per la gestione delle date in COBOL.

Istruzioni

1

Capire la struttura di base di COBOL. Ogni programma COBOL ha quattro sezioni principali, chiamati divisioni. Si tratta di identificazione, ambiente, dati e PROCEDURE. Data dati vanno nella divisione di dati, un'area che descrive le strutture di memoria.

2

Determinare come le date vengono memorizzate sul disco. Le date sono spesso memorizzate come numeri grezzi in formato AAAAMMGG. Ad esempio, 10 febbraio 2014 in genere viene memorizzato come 20140210. La struttura di data nella divisione di dati rappresentati in COBOL, è simile al seguente:

01-RECORD DI DATI.

… data fields …
03 EVENT-DATE.
05 EVENT-YEAR PIC 9999.
05 EVENT-MONTH PIC 99.
05 EVENT-DAY PIC 99.
.. more fields ..

Una riga di dati ottiene leggere nell'elemento di RECORD di dati, che è suddivisa in un numero di campi. La data dell'evento di campo (Data evento) è memorizzato da qualche parte in ogni riga di dati in formato AAAAMMGG. La data è suddivisa in campi di anno, mese e giorno.

3

Definire una struttura dove le date possono essere accettate dalla console. Perché le date sono solitamente immesse nel formato gg/MM/AAAA, la struttura deve riflettere questo.

01 DATA-POLL.

03 MM-IN PIC 99.
03 FILLER PIC X.
03 DD-IN PIC 99.
03 FILLER PIC X.
03 YYYY-IN PIC 9999.
4

Definire l'archiviazione sia per data di inizio e data fine. Dopo le date lette nella struttura data-IN, è necessario riformattare in formato AAAAMMGG. La data di inizio e data fine strutture conterrà questi valori.

01-DATA DI INIZIO.

03 START-YYYY PIC 9999.
03 START-MM PIC 99.
03 START-DD PIC 99.

Creare una struttura simile scadenza con campi fine-aaaa, MM fine e fine-DD.

5

Accettare le date dalla console o JCL (Job Control Language) e riformattarle in formato AAAAMMGG. Nella divisione di procedura, aggiungere il seguente codice:

DIVISIONE DI PROCEDURA.
0000-START.

DISPLAY “Start Date: “.
ACCEPT DATE-IN.
START-YYYY = YYYY-IN.
START-MM = MM-IN.
START-DD = DD-IN.

DISPLAY “End Date: “.
ACCEPT DATE-IN.
END-YYYY = YYYY-IN.
END-MM = MM-IN.
END-DD = DD-IN.

Il programma viene avviato, viene richiesto per la data di inizio, il valore della data è accettato e quindi riformattato nel campo Data di inizio assegnando ogni campo per fare riferimento alla sua controparte input. Il processo equivalente è fatto per la data di fine.

6

Leggere un record e confrontare le date. Perché ora, tutte le date sono in formato AAAAMMGG, è solo bisogno di confrontare stringhe per determinare se qualsiasi record è all'interno della gamma di data che appena creato.

0100READ-RECORD.
LEGGERE I DATI NEL RECORD DI DATI

AT END, GO TO 0900-END.

Se evento--Data > = Data di inizio o < = data di fine

PERFORM 1000-PROCESS-DATA.

Ogni record viene letto nella struttura del RECORD di dati, quindi il campo Data evento ottiene confrontato con la data di inizio e data fine campi. In questo esempio, se data del record è compreso tra la data di inizio e di fine, il record viene elaborato.