COBOL podem parecer antiquados quando comparado a linguagens orientadas a objetos , mas ainda prospera em mainframes legados onde a sua ultra-rápida números impressionantes é susceptível de garantir a sua utilização para os próximos anos . Para aqueles versados em Java ou C # , pode vir como um choque que essa linguagem não tem data primitivas , mas a maior parte do código do aplicativo depende dependências data. Aqui estão algumas dicas para gerenciar datas em COBOL. Instruções
1
Compreender a estrutura básica do COBOL. Cada programa COBOL tem quatro grandes seções chamadas Divisões . Estes são IDENTIFICAÇÃO , MEIO AMBIENTE , dados e PROCEDIMENTO . Data dados vão na Divisão DADOS, uma área que descreve estruturas de memória .
2
Determinar como as datas são armazenadas no disco . As datas são muitas vezes armazenados como números brutos no formato AAAAMMDD . Por exemplo, 10 de fevereiro de 2014 são normalmente armazenados como 20140210 . Representado em COBOL , a estrutura de data na Divisão DATA fica assim:
01 DATA-RECOR D. ... campos de dados ... 03 EVENT-DATE 0,05 EVENTO ANOS PIC 9.999,05 EVENTO MESES PIC 99,05 EVENT-DAY PIC 99 ... mais campos ..
A linha de dados é lido no elemento DATA- RECORD, que é subdividido em uma série de campos. A data do evento campo (EVENTO - DATA ) é armazenado em algum lugar , em cada linha de dados no formato AAAAMMDD . A data é subdividida em campos de ano , mês e dia .
3
Definir uma estrutura em que as datas podem ser aceitos a partir do console. Como as datas são normalmente inseridos no formato MM /DD /AAAA , a estrutura deve refletir isso.
01 DATE-IN 0,03 MM -IN PIC 99,03 FILLER PIC X.03 DD -IN PIC 99,03 FILLER PIC X. 03 YYYY-IN PIC 9999.
4
Definir armazenamento para tanto a data ea data final começar. Após as datas se ler na estrutura DATA -IN , eles devem ser reformatados para o formato AAAAMMDD . As estruturas START- DATE e data-limite vai realizar esses valores.
01 START-DATE 0,03 START- AAAA PIC 9.999,03 START- MM PIC 99,03 START-DD PIC 99.
Criar um semelhante estrutura END - dATA com campos END -AAAA , END -MM -DD e END .
5
Aceite as datas a partir do console ou JCL ( Job Control Language) e reformatá-los para formato AAAAMMDD . Na Divisão Processo, adicione o seguinte código :
PROCEDIMENTO DIVISION.0000 - START.DISPLAY " Data de início: " . ACEITA DATA - IN.START -AAAA = AAAA- MM - IN.START = MM -IN . . START- DD = DD -IN
DISPLAY " término: " . ACEITA DATA - IN.END -AAAA = AAAA- MM - IN.END = MM- DD - IN.END = DD -IN .
o programa inicia , uma mensagem solicitará a data de início , o valor de data é aceita e , em seguida, reformatado para o campo sTART- dATA , atribuindo cada campo para se referir ao seu homólogo de entrada. O processo é feito equivalente a data final para .
6
Leia um registro e comparar as datas. Porque todas as datas já estão no formato AAAAMMDD , você só precisa comparar strings para determinar se qualquer registro está dentro do intervalo de datas que você criou
0100READ - RECORD.READ dados em dados - RECORDAT END, IR PARA 0900 . - . END IF
EVENTO - DATA > = START- DATA ou < = FIM - DATEPERFORM 1000- PROCESSO -DATA
Cada registro é lido na estrutura DATA- RECORD, então. o campo EVENTO - DATA fica em comparação com os campos START- DATE e data-limite . Neste exemplo, se a data do registro é entre o início e término , o registro é processado .