COBOL - Funções intrínsecas


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF.

 FUNCTION INTEGER-OF-DATE

   
  A função "FUNCTION INTEGER-OF-DATE" converte uma data do formato YYYYMMDD para uma data inteira que representa o número de dias após 31 de dezembro de 1600.

Também é usada para achar a diferença entre duas datas do formato YYYYMMDD.
 
   
   Formato geral: FUNCTION INTEGER-OF-DATE(num)
                             num é um numérico ou argumento inteiro, no formato YYYYMMDD, que representa a                              data subsequente a 31 de dezembro de 1600
 
   Regras:  
                               1. O tipo desta função é um inteiro.  
                               2. O valor do argumento é obtido através do cálculo:
                                  (YYYY * 10,000) + (MM * 100) + DD.
                                  YYYY representa o ano do calendário gregoriano e deve ser um inteiro na faixa de                                   1601 até 9999.
                                  MM representa o mês, é um inteiro e deve estar na faixa de 01 até 12.
                                  DD representa o dia, é um inteiro e deve estar na faixa de 01 até 31.
                                  O valor do DD deve ser válido conforme a combinação mês/ano.
 
                               3. O valor retornado é um inteiro que representa o número de dias da data especificada,                                   após 31 DE DEZEMBRO DE 1600.  
   
   

 Exemplo

 
       
      *-----------------------------------------------------------------
       WORKING-STORAGE SECIOTN.
      *-----------------------------------------------------------------

       01  WS-AUXILIARES.  
           05  WS-DIAS                   PIC 9(011) VALUE ZEROES.   
           05  WS-DIAS-1                 PIC 9(008) VALUE 20060611. 
           05  WS-DIAS-2                 PIC 9(008) VALUE 20050611. 
       
		 
      *-----------------------------------------------------------------
       PROCEDURE DIVISION. 
      *-----------------------------------------------------------------
* sintaxe do comando * exemplo 01:
COMPUTE WS-DIAS = FUNCTION INTEGER-OF-DATE (WS-DIAS-1) DISPLAY 'INTEGER-OF-DATE DIAS - ' WS-DIAS
* Resultado: FUNCTION INTEGER-OF-DATE ........ - 00000148085
* exemplo 02: diferença entre duas datas COMPUTE WS-DIAS = (FUNCTION INTEGER-OF-DATE (WS-DIAS-1) - FUNCTION INTEGER-OF-DATE (WS-DIAS-2)) DISPLAY 'INTEGER-OF-DATE DIFE - ' WS-DIAS
* Resultado: FUNCTION INTEGER-OF-DATE ........ - 00000000365

No primeiro exemplo o NUM tem um valor de 20060611 (que é 11 de junho de 2006) e o valor retornado e armazenado em WS-DIAS é 148085 (148085 dias depois de 31 de dezembro de 1600). No segundo exemplo a variável WS-DIAS1 tem um valor de 20060611 e a variável WS-DIAS2 tem um valor de 20050611. A diferença entre as duas datas é de 365 dias.