Logo

Manipulación de Fechas en COBOL: Rutinas y Formatos

La manipulación de fechas es una tarea fundamental en la programación, y el lenguaje COBOL, ampliamente utilizado en sistemas financieros y de negocios, proporciona herramientas especiales para manejar fechas efectivamente.

Conceptos Básicos de Fechas en COBOL

Antes de sumergirnos en las rutinas y formatos de fechas en COBOL, es importante entender cómo se representan las fechas en este lenguaje. En COBOL, las fechas pueden representarse en diferentes formatos, pero el más común es AAAAMMDD, donde AAAA representa el año, MM el mes y DD el día.

Rutinas de Fecha en COBOL

COBOL no cuenta con funciones integradas para el manejo de fechas, como otros lenguajes de programación modernos. Sin embargo, existen varias rutinas que los programadores han desarrollado a lo largo de los años para trabajar con fechas.

Funciones de Fecha de COBOL Estándar

Con la introducción de COBOL-85 y versiones posteriores, se agregaron funciones estándar para el manejo de fechas, como CURRENT-DATE que devuelve la fecha y hora actual.

Obtención de la Fecha Actual

01  FECHA-ACTUAL.
    05  FECHA-AÑO           PIC 9(04).
    05  FECHA-MES-DIA       PIC 9(04).
    05  FILLER              PIC X.
    05  FECHA-HORA          PIC 9(06).

MOVE FUNCTION CURRENT-DATE TO FECHA-ACTUAL

Rutinas de Usuario para el Manejo de Fechas

Los programadores a menudo crean sus propias rutinas para calcular diferencias entre fechas, sumar o restar días a una fecha, o para validar fechas.

Sumar Días a una Fecha

PROCEDURE DIVISION.
    MOVE 20230315 TO WS-FECHA
    MOVE 10 TO WS-DIAS-A-SUMAR
    CALL "SUMAR_DIAS_A_FECHA" USING WS-FECHA WS-DIAS-A-SUMAR WS-FECHA-NUEVA
    DISPLAY "NUEVA FECHA: " WS-FECHA-NUEVA

Aquí, SUMAR_DIAS_A_FECHA sería una rutina creada por el usuario que toma una fecha y un número de días, y devuelve la nueva fecha.

Formatos de Fecha en COBOL

La representación de las fechas en COBOL es crucial para el funcionamiento correcto de las rutinas. Además del formato AAAAMMDD, las fechas también pueden representarse como:

Formato Julianas en COBOL

Las fechas julianas son útiles para cálculos de días transcurridos y se representan con el año seguido del día del año (de 001 a 365 o 366 en años bisiestos).

Aquí un ejemplo de cómo convertir una fecha Gregoriana a una fecha Juliana:

PROCEDURE DIVISION.
    MOVE 20230315 TO WS-FECHA-GREGORIANA
    CALL "CONVERTIR_A_JULIANA" USING WS-FECHA-GREGORIANA WS-FECHA-JULIANA
    DISPLAY "FECHA JULIANA: " WS-FECHA-JULIANA

En este caso, CONVERTIR_A_JULIANA sería una rutina para convertir la fecha Gregoriana en su equivalente Juliana.

Ejemplos Reales de Rutinas de Fecha

Vamos a crear un ejemplo de rutina que suma días a una fecha en COBOL utilizando el formato AAAAMMDD.

IDENTIFICATION DIVISION.
PROGRAM-ID. SUMAR_DIAS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FECHA            PIC 9(08).
01 WS-DIAS-A-SUMAR     PIC 9(04).
01 WS-FECHA-NUEVA      PIC 9(08).

PROCEDURE DIVISION.
   MOVE 20230315 TO WS-FECHA
   MOVE 10 TO WS-DIAS-A-SUMAR
   CALL "SUMAR_DIAS_A_FECHA" USING WS-FECHA WS-DIAS-A-SUMAR WS-FECHA-NUEVA
   DISPLAY "NUEVA FECHA: " WS-FECHA-NUEVA
   STOP RUN.

SUMAR_DIAS_A_FECHA.
   ... // Aquí iría la lógica para sumar días a la fecha

En este ejemplo, WS-FECHA es la fecha original, WS-DIAS-A-SUMAR es el número de días a sumar y WS-FECHA-NUEVA es la fecha resultante.

Recursos Adicionales

Para más detalles sobre la manipulación de fechas en COBOL y ejemplos de rutinas, los siguientes enlaces pueden ser útiles:

Recuerda que las rutinas para manejo de fechas pueden variar dependiendo del sistema y la versión de COBOL que estés utilizando. Por tanto, es importante consultar la documentación específica para tu entorno de desarrollo COBOL.

© Copyright 2024, todos los derechos reservados.