Citación del post de
Kuk
Lo resolví de este modo, para lo que necesitaba, saber la cantidad de años entre dos fechas
Código COBOL:
WORKING-STORAGE SECTION.
01 FECHA-INGRESO.
02 AC-FECING PIC 9(08).
02 R-AC-FECING REDEFINES AC-FECING.
03 AA-FECING PIC 9(04).
03 MM-FECING PIC 9(02).
03 DD-FECING PIC 9(02).
01 VARI-ANTIGUEDAD.
02 AC-FECCON PIC 9(08).
02 R-AC-FECCON REDEFINES AC-FECCON.
03 AA-FECCON PIC 9(04).
03 MM-FECCON PIC 9(02).
03 DD-FECCON PIC 9(02).
02 AC-DIATOT PIC 9(05)V999.
02 AC-MESTOT PIC 9(03)V999.
02 AC-ANOTOT PIC 9(02)V999.
02 FECHA1 PIC 9(08).
02 FECHA2 PIC 9(08).
PROCEDURE DIVISION.
CALCULO-FECHA-CONTRATO.
MOVE 0 TO AC-DIATOT AC-MESTOT AC-ANOTOT
MOVE REM02-FECCONT TO AC-FECCON
COMPUTE FECHA1 = (AA-FECCON * 365.25) + DANO(MM-FECCON) +
DD-FECCON
COMPUTE FECHA2 = (AA-FECING * 365.25) + DANO(MM-FECING) +
DD-FECING
IF FECHA1 > FECHA2
MOVE " !! Fecha < a la Primera !! " TO MENSAJE
PERFORM EMITE-MENSAJE
ELSE
COMPUTE AC-DIATOT ROUNDED = FECHA1 - FECHA2
COMPUTE AC-MESTOT ROUNDED = (AC-DIATOT / 30)
COMPUTE AC-ANOTOT ROUNDED = (AC-DIATOT / 365.25).