tennisnovice001
tennisnovice001

Reputation: 33

convert date DD-MMM-YYYY to YYYYMMDD in cobol

I'm trying to change the date format from DD-MON-YYYY to YYYY/MM/DD in COBOL and I was wondeing if that was possible.

I've been searching and I couldn't find any utilities or date function to change it.

What I've tried:

Upvotes: 1

Views: 1648

Answers (1)

James Anderson
James Anderson

Reputation: 27478

COBOL suffers from a paucity of useful libraries and utilities. Mostly COBOL programers just re-invent wheels and code stuff up themselves.

Something like (untested code!):----

01 OLD-DATE.
   05 OLD-DD    PIC XX.
   05 FILLER    PIC X.
   05 OLD-MON   PIC XXX.
   05 FILLER    PIC X.
   05 OLD-YEAR  PIC XXXX.
01 NEW-DATE.
   05 NEW-YEAR  PIC XXXX.
   05 FIRST-SLASH PIC X VALUE '/'.
   05 NEW-MM    PIC 99.
   05 SECOND-SLASH PIC X VALUE '/'.
   05 NEW-DD    PIC XX.
01 M-TAB.
   M      PIC XXX OCCURS 12.
01 M-VALS REDEFINES M-TAB VALUE 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'.
01 M-X    PIC S9(8) COMP VALUE 0.

.......
  MOVE OLD-YEAR TO NEW-YEAR.
  PERFORM VARYING M-X FROM 1 TO 12
    IF OLD-MON = M(M-X)
        MOVE M-X TO NEW-MM
    END IF
 END PERFORM.
 MOVE OLD-DD TO NEW-DD.

Upvotes: 3

Related Questions