I am getting the error message 'ARGUMENT OF FUNCTION INTEGER-OF-DATE MUST BE TYPE INTEGER' when I compile my subprogram. I am trying to find the number of days difference between two dates. Here is my subprogram:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CUR-DATE.
05 WS-CUR-YEAR PIC 9999.
05 WS-CUR-MONTH PIC 99.
05 WS-CUR-DAY PIC 99.
01 WS-START-DATE.
05 WS-START-YEAR.
10 WS-START-CENTURY PIC 99.
10 WS-START-END PIC 99.
05 WS-START-MONTH PIC 99.
05 WS-START-DAY PIC 99.
LINKAGE SECTION.
COPY DATESTMP.
PROCEDURE DIVISION USING DATE-ARGUMENTS.
000-MAIN.
MOVE FUNCTION CURRENT-DATE (1:8) TO WS-CUR-DATE.
PERFORM 200-GET-CENTURY.
PERFORM 300-FORMAT-CURRENT-DATE.
PERFORM 400-FIND-DAYS-DIFF.
PERFORM 500-FORMAT-DATE
EXIT PROGRAM.
200-GET-CENTURY.
IF SUB-START-YEAR > 90
MOVE 19 TO WS-START-CENTURY
ELSE
MOVE 20 TO WS-START-CENTURY
END-IF.
300-FORMAT-CURRENT-DATE.
MOVE SUB-START-MONTH TO WS-START-MONTH
MOVE SUB-START-DAY TO WS-START-DAY
MOVE SUB-START-YEAR TO WS-START-END.
400-FIND-DAYS-DIFF.
COMPUTE DAYS-DIFFERENCE =
FUNCTION INTEGER-OF-DATE(WS-CUR-DATE)
- FUNCTION INTEGER-OF-DATE(WS-START-DATE).
500-FORMAT-DATE.
MOVE WS-CUR-MONTH TO SUB-CUR-MONTH
MOVE WS-CUR-DAY TO SUB-CUR-DAY
MOVE WS-CUR-YEAR TO SUB-CUR-YEAR.
My copybook 'DATESTMP' is as follows:
01 DATE-ARGUMENTS.
05 SUB-CUR-DATE.
10 SUB-CUR-MONTH PIC 99.
10 SUB-CUR-DAY PIC 99.
10 SUB-CUR-YEAR PIC 9999.
05 SUB-START-DATE.
10 SUB-START-MONTH PIC 99.
10 SUB-START-DAY PIC 99.
10 SUB-START-YEAR PIC 99.
05 DAYS-DIFFERENCE PIC 9999.
Thanks if anyone can help.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CUR-DATE.
05 WS-CUR-YEAR PIC 9999.
05 WS-CUR-MONTH PIC 99.
05 WS-CUR-DAY PIC 99.
01 WS-START-DATE.
05 WS-START-YEAR.
10 WS-START-CENTURY PIC 99.
10 WS-START-END PIC 99.
05 WS-START-MONTH PIC 99.
05 WS-START-DAY PIC 99.
LINKAGE SECTION.
COPY DATESTMP.
PROCEDURE DIVISION USING DATE-ARGUMENTS.
000-MAIN.
MOVE FUNCTION CURRENT-DATE (1:8) TO WS-CUR-DATE.
PERFORM 200-GET-CENTURY.
PERFORM 300-FORMAT-CURRENT-DATE.
PERFORM 400-FIND-DAYS-DIFF.
PERFORM 500-FORMAT-DATE
EXIT PROGRAM.
200-GET-CENTURY.
IF SUB-START-YEAR > 90
MOVE 19 TO WS-START-CENTURY
ELSE
MOVE 20 TO WS-START-CENTURY
END-IF.
300-FORMAT-CURRENT-DATE.
MOVE SUB-START-MONTH TO WS-START-MONTH
MOVE SUB-START-DAY TO WS-START-DAY
MOVE SUB-START-YEAR TO WS-START-END.
400-FIND-DAYS-DIFF.
COMPUTE DAYS-DIFFERENCE =
FUNCTION INTEGER-OF-DATE(WS-CUR-DATE)
- FUNCTION INTEGER-OF-DATE(WS-START-DATE).
500-FORMAT-DATE.
MOVE WS-CUR-MONTH TO SUB-CUR-MONTH
MOVE WS-CUR-DAY TO SUB-CUR-DAY
MOVE WS-CUR-YEAR TO SUB-CUR-YEAR.
My copybook 'DATESTMP' is as follows:
01 DATE-ARGUMENTS.
05 SUB-CUR-DATE.
10 SUB-CUR-MONTH PIC 99.
10 SUB-CUR-DAY PIC 99.
10 SUB-CUR-YEAR PIC 9999.
05 SUB-START-DATE.
10 SUB-START-MONTH PIC 99.
10 SUB-START-DAY PIC 99.
10 SUB-START-YEAR PIC 99.
05 DAYS-DIFFERENCE PIC 9999.
Thanks if anyone can help.