Ver Mensaje Individual
  #8
Antiguo 30 de noviembre de 2021, 16:09
jmeza
Forero Senior
Última Actividad 23.05.2026 02:04
Posts Posts: 106
Likes enviados Enviados: 26
Likes recibidos Recibidos: 4

Citación del post de Kuk Ver Mensaje
@jmeza, yo tenía una rutina hecha hace muchos años, creo que la publiqué en el antiguo foro, y se llamaba así, DIFERMES

Bueno, al caso, coge este fuente y no necesitas librerías: [Aporte] DLL de cáculo de fecha y hora - COBOL Foro
Lo resolví de este modo, para lo que necesitaba, saber la cantidad de años entre dos fechas

Código COBOL:
  1. WORKING-STORAGE SECTION.
  2.  
  3. 01 FECHA-INGRESO.
  4.          02 AC-FECING      PIC 9(08).
  5.          02 R-AC-FECING REDEFINES AC-FECING.
  6.                   03  AA-FECING PIC 9(04).
  7.                   03  MM-FECING PIC 9(02).
  8.                   03  DD-FECING PIC 9(02).
  9. 01  VARI-ANTIGUEDAD.
  10.            02 AC-FECCON      PIC 9(08).
  11.            02 R-AC-FECCON REDEFINES AC-FECCON.
  12.                03  AA-FECCON PIC 9(04).
  13.                03  MM-FECCON PIC 9(02).
  14.                03  DD-FECCON PIC 9(02).
  15.            02 AC-DIATOT     PIC 9(05)V999.
  16.            02 AC-MESTOT   PIC 9(03)V999.
  17.            02 AC-ANOTOT   PIC 9(02)V999.
  18.            02 FECHA1         PIC 9(08).
  19.            02 FECHA2         PIC 9(08).
  20.  
  21. PROCEDURE DIVISION.
  22.        CALCULO-FECHA-CONTRATO.
  23.            MOVE 0 TO AC-DIATOT AC-MESTOT AC-ANOTOT
  24.            MOVE REM02-FECCONT TO AC-FECCON
  25.            COMPUTE FECHA1 = (AA-FECCON * 365.25) + DANO(MM-FECCON) +
  26.                              DD-FECCON
  27.            COMPUTE FECHA2 = (AA-FECING * 365.25) + DANO(MM-FECING) +
  28.                              DD-FECING
  29.            IF  FECHA1 > FECHA2
  30.                MOVE " !! Fecha < a la Primera !! " TO MENSAJE
  31.                PERFORM EMITE-MENSAJE
  32.            ELSE
  33.                COMPUTE AC-DIATOT ROUNDED = FECHA1 - FECHA2
  34.                COMPUTE AC-MESTOT ROUNDED = (AC-DIATOT / 30)
  35.                COMPUTE AC-ANOTOT ROUNDED = (AC-DIATOT / 365.25).


Comentario de Moderador

Usa los botones de resalto de sintaxis


jmeza is offline   Responder Con Cita