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.
|