IDENTIFICATION DIVISION.                                         
        PROGRAM-ID. DATECALL.                                            
        AUTHOR. MARTIN OSULLIVAN.                                        
       *    THIS PROGRAM WILL CONVERT A DATE FROM THE FORMAT DDMMCCYY    
       *         TO JULIAN DATE CCYYDDD                                  
       *    THIS IS THE MAIN PROGRAM                                     
        DATE-WRITTEN. 22/01/99.                                          
        DATE-COMPILED.                                                   
       *                                                                 
        ENVIRONMENT DIVISION.                                            
        CONFIGURATION SECTION.                                           
        SOURCE-COMPUTER. IBM-AS400.                                      
        OBJECT-COMPUTER. IBM-AS400.                                      
       *                                                                 
        DATA DIVISION.                                                   
        WORKING-STORAGE SECTION.                                         
        01  FLAGS-ETC.                                                   
            02 DATE-VALID-FLAG      PIC X.                               
               88 DATE-VALID        VALUE "Y".                           
               88 DATE-NOT-VALID    VALUE "N".                           
                                                                         
        01  MISCELLANEOUS-FLAGS.                                         
            03 SCREEN-RESPONSE         PIC X(3).                         
            88 WISH-TO-END           VALUE "END".                        
                                                                         
        01  DATE-STRING.                                                 
            03 DAY-IN                PIC X(2).                           
            03 MONTH-IN              PIC X(2).                           
            03 YEAR-IN               PIC X(4).                           
                                                                         
        01 JULIAN-DATE.                                                  
            03 YEAR-OUT              PIC 9(4).                           
            03 DAY-NUMBER            PIC 9(3).                           
                                                                         
        01  MESSAGES-ETC.                                                
            03 PROMPT-MESSAGE-00     PIC X(58)                           
            VALUE " :*:*:*:*: DATE VALIDATION - PRESS ENTER TO RUN ".    
            03 PROMPT-MESSAGE-01     PIC X(58)                           
            VALUE "                        OR - PRESS END TO END".       
                                                                         
        PROCEDURE DIVISION.                                              
        MAIN-PARA.                                                       
             PERFORM ASK-GO.                                             
             PERFORM WORK-1-ASK-MORE UNTIL WISH-TO-END.                  
             STOP RUN.                                                   
                                                                         
                                                                         
        ASK-GO.                                                          
            DISPLAY PROMPT-MESSAGE-00.                                   
            DISPLAY PROMPT-MESSAGE-01.                                   
            ACCEPT SCREEN-RESPONSE.                                      
                                                                         
        WORK-1-ASK-MORE.                                                 
            PERFORM WORK-1.                                              
            PERFORM ASK-GO.                                              
                                                                         
        WORK-1.                                                          
       *    PERFORM INITIALISE-VARS.                                     
            PERFORM GET-DATE.                                            
            PERFORM VALIDATE-DATE.                                       
            PERFORM POSS-CONVERT.                                        
                                                                         
        GET-DATE.                                                        
            DISPLAY "ENTER IN THE DATE IN THE FORMAT DDMMCCYY".          
            ACCEPT DATE-STRING.                                          
                                                                         
        VALIDATE-DATE.                                                   
             CALL "DATEVAL"                                              
             USING DATE-STRING, DATE-VALID-FLAG.                         
             CANCEL "DATEVAL".                                           
                                                                         
         POSS-CONVERT.                                                   
             IF DATE-VALID                                               
                PERFORM CONVERT-TO-JULIAN-AND-DISPLAY                    
             ELSE                                                        
                PERFORM DISPLAY-DATE-NOT-VALID.                          
                                                                         
         CONVERT-TO-JULIAN-AND-DISPLAY.                                  
            CALL "JULIAN" USING DATE-STRING, JULIAN-DATE.                
            CANCEL "JULIAN".                                             
            PERFORM DISPLAY-VALID-DATE-AND-JULIAN.                       
                                                                         
         DISPLAY-DATE-NOT-VALID.                                         
            DISPLAY "THE DATE ENTERED IN IS INVALID".                  
                                                                       
         DISPLAY-VALID-DATE-AND-JULIAN.                                
             DISPLAY "THE DATE YOU ENTERED WAS".                       
             DISPLAY DATE-STRING.                                      
             DISPLAY "IT CONVERTED TO JULIAN DATE FORMAT IS".          
             DISPLAY JULIAN-DATE.                                      


   Link back to cobol page