| 
         Displaying  Source Code(s)   
  
        
 
         
        
          
             | 
            
             | 
           
          
             
              
                
                Date Difference in Mainframe COBOL 
                 
                -------------------------------------------------------------------------------- 
                 
                Description : This program finds the difference between two 
                dates given from the JCL. 
                 
                 
                IDENTIFICATION DIVISION. 
                00010000 
                PROGRAM-ID. CDATEC. 
                00020000 
                 
                00021000 
                DATA DIVISION. 
                00030000 
                 
                00031000 
                WORKING-STORAGE SECTION. 
                00040000 
                 
                00041000 
                01 YR PIC 9999. 
                00050000 
                 
                00051000 
                01 YR1 PIC 9999. 
                00060000 
                 
                00060100 
                01 YR2 PIC 9999. 
                00061000 
                 
                00062000 
                01 MON PIC 99. 
                00070000 
                 
                00071000 
                01 MON1 PIC 99. 
                00080000 
                 
                00080100 
                01 MON2 PIC 99. 
                00081000 
                 
                00082000 
                01 D1 PIC 99. 
                00090000 
                 
                00091000 
                01 D2 PIC 99. 
                00100000 
                 
                00101000 
                01 QU1 PIC 99. 
                00110000 
                 
                00111000 
                01 REM1 PIC 99. 
                00120000 
                 
                00121000 
                01 REM2 PIC 99. 
                00130000 
                 
                00131000 
                01 REM3 PIC 99. 
                00140000 
                 
                00141001 
                01 T PIC 99999999. 
                00150000 
                 
                00150101 
                01 T1 PIC 99999999. 
                00151000 
                 
                00151101 
                01 T2 PIC 99999999. 
                00152000 
                 
                00153001 
                PROCEDURE DIVISION. 
                00160000 
                 
                00161001 
                MAINP. 
                00170000 
                ACCEPT YR1. 
                00180000 
                ACCEPT YR2. 
                00190000 
                ACCEPT MON1. 
                00200000 
                ACCEPT MON2. 
                00210000 
                ACCEPT D1. 
                00220000 
                ACCEPT D2. 
                00230000 
                 
                00240001 
                PERFORM LP-PARA VARYING YR FROM 1900 BY 1 UNTIL YR = YR1. 
                00270000 
                PERFORM MN-PARA VARYING MON FROM 1 BY 1 UNTIL MON = MON1. 
                00280000 
                 
                00281001 
                MOVE T TO T1. 
                00290000 
                COMPUTE T1 = T1 + D1. 
                00290100 
                MOVE 0 TO T. 
                00291000 
                 
                00292001 
                PERFORM LP-PARA VARYING YR FROM 1900 BY 1 UNTIL YR = YR2. 
                00330000 
                PERFORM MN-PARA VARYING MON FROM 1 BY 1 UNTIL MON = MON2. 
                00340000 
                 
                00341001 
                MOVE T TO T2. 
                00350000 
                COMPUTE T2 = T2 + D2. 
                00350100 
                COMPUTE T = T2 - T1. 
                00351000 
                 
                00352001 
                DISPLAY "THE DIFFERENCE BETWEEN DATES: ". 
                00360000 
                DISPLAY D1 "/" MON1 "/" YR1 " & " D2 "/" MON2 "/" YR2 " 
                IS<BR>.00361000 
                DISPLAY T. 
                00362000 
                STOP RUN. 
                00370000 
                 
                00371001 
                LP-PARA. 
                00380000 
                DIVIDE YR BY 400 GIVING QU1 REMAINDER REM1. 
                00381000 
                DIVIDE YR BY 100 GIVING QU1 REMAINDER REM2. 
                00382000 
                DIVIDE YR BY 4 GIVING QU1 REMAINDER REM3. 
                00383000 
                IF REM1 = 0 OR ( REM2 IS NOT = 0 AND REM3 = 0 ) THEN 
                00390000 
                COMPUTE T = T + 366 
                00400000 
                ELSE 
                00410000 
                COMPUTE T = T + 365 
                00420000 
                END-IF. 
                00430000 
                 
                00431001 
                MN-PARA. 
                00440000 
                DIVIDE YR BY 400 GIVING QU1 REMAINDER REM1. 
                00441000 
                DIVIDE YR BY 100 GIVING QU1 REMAINDER REM2. 
                00442000 
                DIVIDE YR BY 4 GIVING QU1 REMAINDER REM3. 
                00443000 
                IF MON = 1 OR MON = 3 OR MON = 5 OR MON = 7 OR MON = 8 
                00450000 
                OR MON = 10 OR MON = 12 THEN 
                00460000 
                COMPUTE T = T + 31 
                00470000 
                ELSE IF MON = 4 OR MON = 6 OR MON = 9 OR MON = 11 THEN 
                00480000 
                COMPUTE T = T + 30 
                00490000 
                ELSE IF REM1 = 0 OR ( REM2 IS NOT = 0 AND REM3 = 0 ) THEN 
                00500000 
                COMPUTE T = T + 29 
                00510000 
                ELSE 
                00520000 
                COMPUTE T = T + 28 
                00530000 
                END-IF. 
                00540000 
                -------------------------------------------------------------------------------- | 
               
             
             | 
           
           
         |