sábado, 28 de julho de 2012

Armazenando Dados em Uma Tabela Cobol


       Descrição: Armazena dados em uma tabela, lembrando que todas as linhas que tem o "*"  na frente é comentário, ou seja, será ignorado no processamento do código, bom então vamos lá.

identification division.
program-id.                             tabela.
author.                               Dionatan.
data division.
working-storage section.
       77 indextab                     pic 9(002) value zeros.
       77 tabmes          pic 9(001) value zeros occurs 31 times.
       
01 datasistema.
        10 anosistema                  pic 9(004).
        10 mesistema                   pic 9(002).
        10 diasistema                  pic 9(002).
       77 inteirodata                  pic 9(008) value zeros.
       77 diasmes                      pic 9(002) value zeros.
       77 diasemana                    pic 9(001) value zeros.
       77 anobissexto                  pic 9(004) value zeros.
       77 anobissprova                 pic 9(009) value zeros.
procedure division.
inicio.
*Identifica o mes
accept datasistema from date yyyymmdd
*Identifica quantos dias existe no mes
evaluate mesistema
 when 1
move 31 to diasmes
when 2
move 28 to diasmes
move zeros to anobissexto
divide anosistema by 4 giving anobissexto
move anobissexto to anobissprova
subtract anobissprova from anobissexto
if anobissexto equal zeros
move 29 to diasmes
end-if
when 3
move 31 to diasmes
when 4
move 30 to diasmes
when 5
move 31 to diasmes
when 6
move 30 to diasmes
when 7
move 31 to diasmes
when 8
move 31 to diasmes
when 9
move 30 to diasmes
when 10
move 31 to diasmes
when 11
move 30 to diasmes
when 12
move 31 to diasmes
end-evaluate
*Laço para cada dia do mes
perform varying indextab from 1 by 1
until indextab > diasmes
*O dia que será analisado
move indextab to diasistema
*A função não aceita um item de grupo
move datasistema to inteirodata
* Identifica o dia da semana
*1 = Segunda Feira
*2 = Terça Feira
*3 = Quarta Feira
*4 = Quinta Feira
*5 = Sexta Feira
*6 = Sábado
*7 = Domingo
move function rem(function integer-of-date(inteirodata),7)
to diasemana
if diasemana >= 1 and
diasemana <= 5
* Se condição for verdadeira é um dia útil
move 1 to tabmes(indextab)
end-if
end-perform
stop run
.

Nenhum comentário:

Postar um comentário