How to Work with Dates in COBOL

Working with dates is a critical part of COBOL programming, especially in business systems handling transactions, reports, and records. This guide covers COBOL date handling techniques, including ACCEPT statements and intrinsic functions.


Why Date Handling Matters in COBOL

Dates are used everywhere in enterprise applications:

  • Financial transactions
  • Payroll systems
  • Reports and audits
  • Customer records

Incorrect date handling can lead to serious logic errors.


1. Getting Current Date and Time in COBOL

ACCEPT Statement (Basic Method)

01 TODAYS-DATE PIC 9(6).
ACCEPT TODAYS-DATE FROM DATE.

👉 Returns date in YYMMDD format (not recommended today).


ACCEPT with 4-Digit Year (Improved)

01 TODAYS-DATE PIC 9(8).
ACCEPT TODAYS-DATE FROM DATE YYYYMMDD.

👉 Returns YYYYMMDD — preferred format.


Getting Current Time

01 TODAYS-TIME PIC 9(8).
ACCEPT TODAYS-TIME FROM TIME.

2. Breaking Date into Components (Using REDEFINES)

01 TODAYS-DATE PIC 9(8).
01 TODAYS-DATE-R REDEFINES TODAYS-DATE.
05 TD-YEAR PIC 9(4).
05 TD-MONTH PIC 9(2).
05 TD-DAY PIC 9(2).
ACCEPT TODAYS-DATE FROM DATE YYYYMMDD.

👉 Allows access to year, month, and day separately.


3. Working with Julian Dates

05 CD-JULIAN-DATE PIC 9(7).
05 CD-JULIAN-DATE-R REDEFINES CD-JULIAN-DATE.
10 CD-JULIAN-YEAR PIC 9(4).
10 CD-JULIAN-DAYS PIC 9(3).
ACCEPT CD-JULIAN-DATE FROM DAY YYYYDDD.

👉 Format: YYYYDDD (Day number in year)


4. Getting Day of Week

05 DAY-NUM PIC 9(1).
05 DAY-NAME PIC X(9).
ACCEPT DAY-NUM FROM DAY-OF-WEEK.
EVALUATE DAY-NUM
WHEN 1 MOVE "MONDAY" TO DAY-NAME
WHEN 2 MOVE "TUESDAY" TO DAY-NAME
WHEN 3 MOVE "WEDNESDAY" TO DAY-NAME
WHEN 4 MOVE "THURSDAY" TO DAY-NAME
WHEN 5 MOVE "FRIDAY" TO DAY-NAME
WHEN 6 MOVE "SATURDAY" TO DAY-NAME
WHEN 7 MOVE "SUNDAY" TO DAY-NAME
END-EVALUATE.

5. COBOL Date Functions (Modern Approach)

Using CURRENT-DATE

01 CURRENT-DATE-AND-TIME.
05 CD-YEAR PIC 9(4).
05 CD-MONTH PIC 9(2).
05 CD-DAY PIC 9(2).
05 CD-HOURS PIC 9(2).
05 CD-MINUTES PIC 9(2).
MOVE FUNCTION CURRENT-DATE TO CURRENT-DATE-AND-TIME.

👉 Best way to get accurate date & time


Calculate Days Between Two Dates

COMPUTE ELAPSED-DAYS =
FUNCTION INTEGER-OF-DATE (DATE-1)
- FUNCTION INTEGER-OF-DATE (DATE-2).

👉 Simple and highly reliable


As many organizations still rely on COBOL-based systems, strong date-handling practices remain highly relevant. By applying the techniques outlined in this guide, you can confidently build and maintain applications that stand the test of time.

Leave a comment

Discover more from DBzTech-Technology Dossier

Subscribe now to keep reading and get access to the full archive.

Continue reading