0

Hola, alguien me podría ayudar con una rutina de calculo entre dos fechas para RMCOBOL85
Tengo una pero no es exacta.
La que tengo de PawercobolV9 no funciona en Rmcobol
Saludos
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle al botón GRACIAS
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención con el botóny escribiendo su Nick.
Kuk, este es el código en rmcobol85, se cae en esta línea, CALL "DIFERMES" USING LNK-DIFER.
error 234 (no object file found) error loading subprogram DIFERMES.
Esta rutina la baje de la pagina y en powercobolv9 funciona sin problemas
COBOL Código:
WORKING-STORAGE SECTION. 01 DIA PIC 99. 01 MES PIC 99. 01 ANO PIC 99. 01 N-FECHA PIC X(100). 01 F-INICIAL PIC X(10). 01 F-FINAL PIC X(10). 01 SV-FECHA PIC X(10). 01 status-code PIC S9(4) COMP-5. 01 LNK-DIFER. COPY "CPY-DIFER.COB". PROCEDURE DIVISION. CALCULO-FECHA-CONTRATO. MOVE 1 TO DIF-OPCION. MOVE REM02-FECCONT TO F-INICIAL. MOVE F-INICIAL TO SV-FECHA. MOVE SV-FECHA(1:2) TO DIF-FECHA-1(1:2). MOVE SV-FECHA(4:2) TO DIF-FECHA-1(3:2). MOVE SV-FECHA(7:4) TO DIF-FECHA-1(5:4). MOVE AC-FECING TO F-FINAL. MOVE F-FINAL TO SV-FECHA. MOVE SV-FECHA(1:2) TO DIF-FECHA-2(1:2). MOVE SV-FECHA(4:2) TO DIF-FECHA-2(3:2). MOVE SV-FECHA(7:4) TO DIF-FECHA-2(5:4). CALL "DIFERMES" USING LNK-DIFER. MOVE DIF-ANIOS TO ANO. MOVE DIF-MESES TO MES. MOVE DIF-DIAS TO DIA. STRING ANO DELIMITED BY SIZE " Años " DELIMITED BY SIZE MES DELIMITED BY SIZE " Meses " DELIMITED BY SIZE DIA DELIMITED BY SIZE " Dias" DELIMITED BY SIZE INTO N-FECHA. DISPLAY N-FECHA LINE 18 POSITION 3.
Es porque no te encuentra el programa "difermes".
Debes de localizarlo e intentar compilarlo para ver si te funciona.
@JCantero, es una DLL, viene on una LIB pero no sé como se hará en RM para utilizarla.
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle al botón GRACIAS
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención con el botóny escribiendo su Nick.
@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
NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle al botón GRACIAS
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención con el botóny escribiendo su Nick.
Lo resolví de este modo, para lo que necesitaba, saber la cantidad de años entre dos fechas
COBOL Código:
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).
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)