Codierbeispiel: Anzeigen des Datums im Format 99.99.9999
Autor: Stefan Zagar

Mit Hilfe des Folgenden Codings kann das Datum im oben dargestellten Format angezeigt werden:

IDENTIFICATION DIVISION.
PROGRAM-ID. Datumsanzeige.
AUTHOR. caggy@swol.de
DATE-WRITTEN. Heute.
DATE-COMPILED. Heute.
INSTALLATION. Beliebig.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-PC.
SPECIAL-NAMES.
      DECIMAL-POINT IS COMMA.

DATA DIVISION.
WORKING-STORAGE SECTION.

01 DATUM.
     05 JAHR    PIC 9(4).
     05 MONAT PIC 9(2).
     05 TAG      PIC 9(2).
     05 REST    PIC X(13).

01 GESEHEN PIC X.

PROCEDURE DIVISION.
       MOVE FUNCTION CURRENT-DATE TO DATUM.
       DISPLAY SPACES UPON CRT.
       DISPLAY TAG      AT 0101.
       DISPLAY MONAT AT 0103.
       DISPLAY JAHR    AT 0105.
       ACCEPT GESEHEN.
STOP RUN.


Für den Datumssatz braucht Cobol exakt 21 Bytes, deshalb das Feld Rest (hier alphanumerisch.) Normalerweise kann hier auch noch die Zeit ermittelt werden, war aber zu tippfaul ;-). Folglich muß dann das Feld entsprechend verringert werden - aber es müssen immer 21 Bytes ergeben. Manche Compiler verlangen allerdings für jedes Feld ein alphanumerisches Feld anstatt numerischer.
COBOL ist Balsam für die Seele. (Anmerkungen des Autors zum Beispiel)


Hierzu kam die folgende Anregung von einem User, der nicht genannt werden möchte:

01 Datum-1.
   05 Jahr      pic x(4).
   05 Monat     pic x(2).
   05 Tag       pic x(2).

01 Datum-2.
   05 Tag       pic x(2).
   05 Filler    pic x(1) value ".".
   05 Monat     pic x(2).
   05 Filler    pic x(1) value ".".
   05 Jahr      pic x(4).

        .....
Move corresponding datum-1  to  datum-2.
Display datum-2.
        .....


Anmerkung des Autors dazu: Damit hat man in datum-2 das gewünschte Format für die Ausgabe.


...