The REM function returns the remainder that results when argument 1 is divided by argument 2.
The REM function is used when the remainder of a division operation is required.
000010 @OPTIONS MAIN 000020*---------------------------------------------------------------------- 000030* The REM function is used to obtain the remainder of a division 000035* operation. 000040*---------------------------------------------------------------------- 000050 IDENTIFICATION DIVISION. 000060 PROGRAM-ID. SAMPLE. 000070 DATA DIVISION. 000080 WORKING-STORAGE SECTION. 000090 01 BIRTHDAY PIC 9(8). 000100 01 ELAPSED-DAYS PIC 9(8) BINARY. 000110 01 REMAINDER-N PIC 9(8) BINARY. 000120 CONSTANT SECTION. 000130 01 DAYS-OF-THE-WEEK-TABLE. 000140 02 PIC X(9) VALUE "Sunday". 000150 02 PIC X(9) VALUE "Monday". 000160 02 PIC X(9) VALUE "Tuesday". 000170 02 PIC X(9) VALUE "Wednesday". 000180 02 PIC X(9) VALUE "Thursday". 000190 02 PIC X(9) VALUE "Friday". 000200 02 PIC X(9) VALUE "Saturday". 000210 01 REDEFINES DAYS-OF-THE-WEEK-TABLE. 000220 02 DAY-OF-THE-WEEK OCCURS 7 TIMES PIC X(9). 000230 PROCEDURE DIVISION. 000240 DISPLAY "When is your birthday? Example: 19690123 >>" 000245 WITH NO ADVANCING. 000250 ACCEPT BIRTHDAY. 000260*---------------------------------------------------------------------- 000270* The INTEGER-OF-DATE obtains the elapsed days from January 1, 1601 000280* (Monday), divides the days by 7, and uses the remainder to obtain the 000281* day of the week. 000290*---------------------------------------------------------------------- 000300 COMPUTE ELAPSED-DAYS = FUNCTION INTEGER-OF-DATE (BIRTHDAY). 000310 COMPUTE REMAINDER-N = FUNCTION REM (ELAPSED-DAYS 7). 000320*---------------------------------------------------------------------- 000330 DISPLAY "You were born on " DAY-OF-THE-WEEK (REMAINDER-N + 1) ".". 000340 END PROGRAM SAMPLE.