💻 COBOL
COBOL ACCEPT Statement
Beginner 🕑 10 min read
👁 1 views
COBOL ACCEPT Statement
The ACCEPT statement retrieves data from external sources like system date, time, or user input.
Syntax
ACCEPT identifier [FROM mnemonic-name/environment-name]
ACCEPT identifier FROM DATE/DAY/DAY-OF-WEEK/TIME
ACCEPT identifier FROM CONSOLE/SYSIN
Example Program
IDENTIFICATION DIVISION.
PROGRAM-ID. ACCEPT-DEMO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-DATE PIC 9(6).
01 WS-DATE-FORMATTED.
05 WS-YY PIC 99.
05 FILLER PIC X VALUE '/'.
05 WS-MM PIC 99.
05 FILLER PIC X VALUE '/'.
05 WS-DD PIC 99.
01 WS-DATE-8 PIC 9(8).
01 WS-TIME PIC 9(8).
01 WS-TIME-FORMATTED.
05 WS-HH PIC 99.
05 FILLER PIC X VALUE ':'.
05 WS-MIN PIC 99.
05 FILLER PIC X VALUE ':'.
05 WS-SS PIC 99.
01 WS-DAY PIC 9(5).
01 WS-DAY-OF-WEEK PIC 9.
01 WS-DAY-NAME PIC X(10).
01 WS-USER-INPUT PIC X(20).
PROCEDURE DIVISION.
* Accept current date (YYMMDD)
ACCEPT WS-DATE FROM DATE
MOVE WS-DATE(1:2) TO WS-YY
MOVE WS-DATE(3:2) TO WS-MM
MOVE WS-DATE(5:2) TO WS-DD
DISPLAY 'Date (YY/MM/DD): ' WS-DATE-FORMATTED
* Accept current date (YYYYMMDD) - if supported
ACCEPT WS-DATE-8 FROM DATE YYYYMMDD
DISPLAY 'Date (YYYYMMDD): ' WS-DATE-8
* Accept current time (HHMMSSCC)
ACCEPT WS-TIME FROM TIME
MOVE WS-TIME(1:2) TO WS-HH
MOVE WS-TIME(3:2) TO WS-MIN
MOVE WS-TIME(5:2) TO WS-SS
DISPLAY 'Time (HH:MM:SS): ' WS-TIME-FORMATTED
* Accept day of year (YYDDD)
ACCEPT WS-DAY FROM DAY
DISPLAY 'Julian Day: ' WS-DAY
* Accept day of week (1=Monday to 7=Sunday)
ACCEPT WS-DAY-OF-WEEK FROM DAY-OF-WEEK
EVALUATE WS-DAY-OF-WEEK
WHEN 1 MOVE 'Monday' TO WS-DAY-NAME
WHEN 2 MOVE 'Tuesday' TO WS-DAY-NAME
WHEN 3 MOVE 'Wednesday' TO WS-DAY-NAME
WHEN 4 MOVE 'Thursday' TO WS-DAY-NAME
WHEN 5 MOVE 'Friday' TO WS-DAY-NAME
WHEN 6 MOVE 'Saturday' TO WS-DAY-NAME
WHEN 7 MOVE 'Sunday' TO WS-DAY-NAME
END-EVALUATE
DISPLAY 'Day of Week: ' WS-DAY-NAME
STOP RUN.
Expected Output
Date (YY/MM/DD): 24/01/15
Date (YYYYMMDD): 20240115
Time (HH:MM:SS): 14:30:25
Julian Day: 24015
Day of Week: Monday
Key Points
- DATE returns YYMMDD format
- TIME returns HHMMSSCC (CC=centiseconds)
- DAY returns YYDDD (Julian date)
- DAY-OF-WEEK returns 1-7
- Console input for interactive programs