COBOL - Calcula o primeiro e o ultimo dia da semana via DB2 - www.cadcobol.com.br


clique aqui para imprimir esta página

Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com


COBOL - calcula o primeiro e o último dia da semana via DB2
O programa abaixo listado tem por finalidade calcular o primeiro e o último dia da semana via DB2

Código
         1         2         3         4         5         6         7   
123456789012345678901234567890123456789012345678901234567890123456789012

      *-----------------------------------------------------------------
       IDENTIFICATION DIVISION.                                         
      *-----------------------------------------------------------------
                                                                        
       PROGRAM-ID.   CADSEMIF.                                          
       AUTHOR.       CARLOS ALBERTO DORNELLES.                          
                                                                        
      *-----------------------------------------------------------------
      * CALCULA O PRIMEIRO E ULTIMO DIA DA SEMANA VIA DB2               
      *-----------------------------------------------------------------
                                                                        
      *-----------------------------------------------------------------
       ENVIRONMENT DIVISION.                                            
      *-----------------------------------------------------------------
                                                                        
       CONFIGURATION SECTION.                                           
       SPECIAL-NAMES.                                                   
                     DECIMAL-POINT IS COMMA.                            
                                                                        
      *-----------------------------------------------------------------
       DATA DIVISION.                                                   
      *-----------------------------------------------------------------
                                                                        
      *-----------------------------------------------------------------
       WORKING-STORAGE SECTION.                                         
      *-----------------------------------------------------------------
                                                                        
       01  WS-VARIAVEIS.                                                
           05  WS-DATA-INICIO-SEMANA   PIC X(010).                      
           05  WS-DATA-FIM-SEMANA      PIC X(010).                      
           05  WS-DIA-SEMANA           PIC S9(04) COMP.                 
           05  WS-SOMA-DIA             PIC S9(04) COMP.                 
           05  WS-DIMI-DIA             PIC S9(04) COMP.                 
           05  WS-TABELA-DIAS          VALUE "06514233241516".          
               10  WS-TAB-DIAS         OCCURS 07 TIMES.                 
                   15  WS-DIA-MAIS     PIC 9(001).                      
                   15  WS-DIA-MENOS    PIC 9(001).                      
                                                                        
      *-----------------------------------------------------------------
      *                 AREA DE TRABALHO DB2                            
      *-----------------------------------------------------------------
                                                                        
           EXEC SQL INCLUDE SQLCA END-EXEC.                             
                                                                        
      *-----------------------------------------------------------------
       PROCEDURE DIVISION.                                              
      *-----------------------------------------------------------------
                                                                        
      *-----------------------------------------------------------------
       P0000-DIA-SEMANA.                                                
      *-----------------------------------------------------------------
                                                                        
           EXEC SQL                                                     
               SELECT DAYOFWEEK(CURRENT DATE)                           
               INTO  :WS-DIA-SEMANA                                     
               FROM   SYSIBM.SYSDUMMY1                                  
           END-EXEC    
                                                 
      * WS-DIA-SEMANA: 1 = DOMINGO 2 = SEGUNDA 3 = TERCA 4 = QUARTA     
      *                5 = QUINTA  6 = SEXTA   7 = SABADO               

           MOVE WS-DIA-MAIS  (WS-DIA-SEMANA) TO WS-SOMA-DIA             
           MOVE WS-DIA-MENOS (WS-DIA-SEMANA) TO WS-DIMI-DIA             
                                                                        
           EXEC SQL                                                     
                SELECT DATE(CURRENT DATE) - :WS-DIMI-DIA DAY            
                ,      DATE(CURRENT DATE) + :WS-SOMA-DIA DAY            
                INTO  :WS-DATA-INICIO-SEMANA                            
                ,     :WS-DATA-FIM-SEMANA                               
                FROM   SYSIBM.SYSDUMMY1                                 
           END-EXEC.                                                    
                                                                        
           DISPLAY 'PRIMEIRO DIA DA SEMANA - ' WS-DATA-INICIO-SEMANA    
           DISPLAY 'ULTIMO   DIA DA SEMANA - ' WS-DATA-FIM-SEMANA  
           GOBACK.