PDA

Ver la Versión Completa : [Sintaxis] Calculo entre dos fecha


jmeza
26 de noviembre de 2021, 01:31
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

Kuk
26 de noviembre de 2021, 10:44
La que tengo de PawercobolV9 no funciona en Rmcobol
Raro... A ver ese código, porque me extraña mucho que no funcione en RM. Salvo que sea alguna función puramente Fujitsu.

jmeza
29 de noviembre de 2021, 21:35
Raro... A ver ese código, porque me extraña mucho que no funcione en RM. Salvo que sea alguna función puramente Fujitsu.

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

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.

JCantero
29 de noviembre de 2021, 21:53
Es porque no te encuentra el programa "difermes".

Debes de localizarlo e intentar compilarlo para ver si te funciona.

Kuk
29 de noviembre de 2021, 22:03
@JCantero, es una DLL, viene on una LIB pero no sé como se hará en RM para utilizarla.

jmeza
29 de noviembre de 2021, 22:30
Es porque no te encuentra el programa "difermes".

Debes de localizarlo e intentar compilarlo para ver si te funciona.

JCantero, ya lo compile cero error, se cae al momento de ejecutar

Difermes, es un archivo oculto que no reconoce el Rmcobol

Kuk
29 de noviembre de 2021, 22:36
@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 (https://www.cobolforo.es/showthread.php?t=269&p=1485)

jmeza
30 de noviembre de 2021, 16:09
@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 (https://www.cobolforo.es/showthread.php?t=269&p=1485)

Lo resolví de este modo, para lo que necesitaba, saber la cantidad de años entre dos fechas

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).




Usa los botones de resalto de sintaxis ;)

https://cobolforo.es/imagenes/editor.png