IDENTIFICATION DIVISION.                                         
        PROGRAM-ID. JULIAN.                                              
        AUTHOR. MARTIN SULLIVAN.                                         
       *    THIS PROGRAM WILL CONVERT A DATE FROM THE FORMAT DD/MM/CCYY  
       *         TO JULIAN DATE CCYYDDD                                  
       *    THIS IS A SUB PROGRAM                                        
                                                                         
        DATE-WRITTEN. 01/12/1999                                         
        DATE-COMPILED.                                                   
                                                                         
        ENVIRONMENT DIVISION.                                            
        CONFIGURATION SECTION.                                           
        SOURCE-COMPUTER. IBM-AS400.                                      
        OBJECT-COMPUTER. IBM-AS400.                                      
                                                                         
        DATA DIVISION.                                                   
        WORKING-STORAGE SECTION.                                         
        01  WORK-DATE.                                                   
            03 N-DAY                PIC 9(2).                            
            03 N-MONTH               PIC 9(2).                           
            03 N-YEAR.                                                   
            05 N-CENTURY             PIC 9(2).                           
            05 N-TENS-PART            PIC 9(2).                          
            88 CENTURY-YEAR         VALUE 0 .                            
                                                                         
        01  SCRATCH-PAD.                                                 
            03 QUOTIENT              PIC 9(2).                           
            03 LEAP                  PIC 9.                              
               88 LEAP-YEAR          VALUE 0.                            
            03 MONTH-SUB             PIC 9(2).                           
                                                                         
        COPY DAYSINMONT.                                                 
                                                                         
        LINKAGE SECTION.                                                 
        01 DATE-STRING               PIC X(8).                           
        01 JULIAN-DATE.                                                  
            03 YEAR-OUT              PIC 9(4).                           
            03 DAY-NUMBER            PIC 9(3).                           
                                                                         
        PROCEDURE DIVISION                                               
            USING DATE-STRING, JULIAN-DATE.                              
                                                                     
        TOP-CONTROL.                                                 
            PERFORM INITIALISE-VARS.                                 
            PERFORM CONVERT-DATE.                                    
            PERFORM RETURN-CONTROAL.                                 
                                                                     
        INITIALISE-VARS.                                             
            MOVE ZERO TO DAY-NUMBER.                                 
            MOVE 28 TO DAYS-IN-MONTH(2).                             
            MOVE DATE-STRING TO WORK-DATE.                           
                                                                     
        COPY LEAPYEAR.                                               
                                                                     
        CONVERT-DATE.                                                
            PERFORM LEAP-YEAR-CALCS.                                 
            PERFORM POSS-LEAP-YEAR.                                  
            PERFORM ADD-IN-DAYS VARYING MONTH-SUB                    
                                FROM 1 BY 1                          
                                UNTIL MONTH-SUB = N-MONTH.           
            ADD N-DAY TO DAY-NUMBER.                                 
            MOVE N-YEAR TO YEAR-OUT.                                 
                                                                     
        ADD-IN-DAYS.                                                 
            ADD DAYS-IN-MONTH(MONTH-SUB) TO DAY-NUMBER.              
                                                                     
        RETURN-CONTROAL.                                             
            EXIT PROGRAM.                                            


   Link back to cobol page