H NOMAIN                                                       
 **************************************************************
 * Procedure: SUBPDOW                                          
 * Input: Date                                                 
 * Output: 1 - 7 Monday-Sunday                                 
 * Return: Packed Length 1                                     
 * Purpose: Receive date; Determine client's numerical day of week       
 **************************************************************
 *Prototype for SUBPDOW procedure                              
D SUBPDOW         PR             1P 0                          
D DateIn                          D                            
 *                                                             
 * P spec begin(B) required                                    
P SUBPDOW         B                   EXPORT                   
 * Procedure Input Definition                                  
D                 PI             1P 0                          
D DateIn                          D                            
                                                               
 * Local variables                                             
D Weeks           S              7  0                          
D DayNbr          S              1P 0                         
                                                              
 * Calculate the day of the week                              
C     DateIn        SUBDUR    D'1899-12-30' Weeks:*D          
C                   DIV       7             Weeks             
C                   MVR                     DayNbr            
 *                                                            
 * Results in Sunday -> Saturday, Values 1 -> 7               
 *                                                            
C                   IF        DayNbr < 1                      
C                   ADD       7             DayNbr            
C                   ENDIF                                     
 *                                                            
 * Convert to Monday -> Sunday, Values 1 -> 7                 
 *                                                            
C                   IF        DayNbr = 1                      
C                   ADD       6             DayNbr            
C                   ELSE                                      
C                   SUB       1             DayNbr            
C                   ENDIF                                     
 *                                                            
 * Return Day of Week Value                                   
 *                                                            
C                   RETURN    DayNbr                          
P SUBPDOW         E