The standard ACCEPT statement for getting the system date was a large part of the Y2K problem, since it only allowed for two-digit years. The 1989 revision of the COBOL standard introduced the following functions for doing date manipuation, all of which use four-digit years. Of course, these will not prevent a Y10K problem, but by then one may hope that COBOL will have been superseded.
Since CURRENT-DATE expects an alphanumeric item, whereas the other functions expect plain numeric items, you should define the data item used to get the current date as follows:
01 DATE-TODAY. 05 DATE-TODAY-NUM PIC 9(8).
OR
01 DATE-TODAY PIC X(8). 01 DATE-TODAY-NUM REDEFINES DATE-TODAY PIC 9(8).
Then use DATE-TODAY with CURRENT-DATE and DATE-TODAY-NUM with everything else.
NB. In the following explanations, "numeric" always means PIC 9 DISPLAY.
CURRENT-DATE
Syntax
MOVE FUNCTION CURRENT-DATE TO data-item.
Action
Returns the current date in YYYYMMDD format. data-item must either be PIC X(8) or a group item.
INTEGER-OF-DATE
Syntax
COMPUTE dest = FUNCTION INTEGER-OF-DATE (source).
Action
Converts source into an integer representing the number of days between December 31, 1600 and source and stores it in dest. source must be a numeric data item containing a date formatted YYYYMMDD. dest must be a numeric data item of at least 6 digits.
DATE-OF-INTEGER
Syntax
COMPUTE dest = FUNCTION DATE-OF-INTEGER (source).
Action
Converts source into a date formatted YYYYMMDD and stores it in dest. source must be a numeric data item. dest must be a numeric data item of 8 digits.
INTEGER-OF-DAY
Syntax
COMPUTE dest = FUNCTION INTEGER-OF-DAY (source).
Action
Converts source into an integer representing the number of days between December 31, 1600 and source and stores it in dest. source must be a numeric data item containing a date formatted YYYYDDD; this is sometimes referred to as a date in Julian format. dest must be a numeric data item of at least 6 digits.
DAY-OF-INTEGER
Syntax
COMPUTE dest = FUNCTION DAY-OF-INTEGER (source).
Action
Converts source into a date formatted YYYYDDD and stores it in dest. source must be a numeric data item containing a positive integer. dest must be a numeric data item of 7 digits.