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-NAMEEND-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