Enterprise COBOL for z/OS, V4.2, Language Reference
Os campos de data com janelas sofrem expansão automática em relação à janela do século quando são usados ??como operandos em expressões aritméticas ou declarações
aritméticas.
No entanto, o resultado do incremento ou decremento de uma data em janela ainda é tratado como uma data em janela para posterior cálculo, comparação e
armazenamento.
Quando usados nas seguintes situações, os campos de data em janela são tratados como se tivessem sido convertidos para o formato de data expandida:
- Operandos em subtrações nas quais o outro operando é uma data expandida
- Operandos em relação às condições
- Enviando campos em instruções aritméticas ou MOVE
Os detalhes da conversão para o formato de data expandida dependem se o campo de data da janela é numérico ou alfanumérico.
Dada uma janela do século a partir do ano 19nn, a parte do ano (aa) de um campo de data numérica com janelas é tratada como se tivesse sido expandida da seguinte
maneira:
- Se yy for menor que nn, adicione 2000 a yy.
- Se yy for igual ou superior a nn, adicione 1900 a yy.
Para campos de data numérica com janela assinada, isso significa que pode haver duas representações de alguns anos.
Por exemplo, os valores do ano em janela 99 e -01 são tratados como 1999, desde 1900 + 99 = 2000 + -01.
Os campos alfanuméricos de data em janela são tratados de maneira semelhante, mas use um prefixo de 19 ou 20 em vez de adicionar 1900 ou 2000.
Por exemplo, quando usado como um operando de uma condição de relação, um campo de data em janela definido por:
01 DATE-FIELD DATE FORMAT YYXXXX PICTURE 9(6)
VALUE IS 450101.
é tratado como se fosse um campo de data expandida com um valor de:
- 19450101, se a janela do século a partir do ano for 1945 ou anterior
- 20450101, se a janela do século com início no ano for posterior a 1945
Date trigger values - Valores do acionador de data
Quando a opção do compilador DATEPROC (TRIG) está em vigor, a expansão dos campos de data em janela é sensível a determinados valores de gatilho ou limite no
campo de data em janela.
Para campos de data alfanuméricos em janelas, esses valores especiais são LOW-VALUE, HIGH VALUE e SPACE.
Para campos de data alfanuméricos e numéricos com janelas com pelo menos um X na cláusula DATE FORMAT (ou seja, campos com janelas em datas que não sejam apenas
um ano em janelas), os valores de todos os zeros ou ninos também são tratados como gatilhos.
O valor zero é destinado a atuar como uma data anterior a qualquer data válida.
O objetivo do valor all-nines é se comportar como uma data posterior a qualquer data válida.
Quando um campo de data em janela contém um gatilho dessa maneira, ele é expandido como se o valor do gatilho fosse copiado para a parte do século do resultado
da data expandida, em vez de deduzir 19 ou 20 como o valor do século.
Essa expansão de gatilho especial é feita quando um campo de data em janela é usado como um operando em uma condição de relação ou como o campo de envio em uma
instrução aritmética ou MOVE.
A expansão do acionador não é feita quando os campos de data em janela são usados ??como operandos em expressões aritméticas, mas podem ser aplicados ao resultado
final da data em janela de uma expressão aritmética.
© Copyright IBM Corp.
|