ubiquitour.com

Cómo comprobar el intervalo de fechas en COBOL

COBOL puede parecer anticuado en comparación con los lenguajes orientados a objeto, pero todavía prospera en mainframes legados donde su veloz cálculo es probable que su uso durante años. Para los versados en Java o C#, puede venir como un choque que esta lengua no tiene primitivas de fecha, pero depende mucho del código de la aplicación en las dependencias de la fecha. Aquí están algunos consejos para la gestión de las fechas en COBOL.

Instrucciones

1 Comprender la estructura básica de COBOL. Cada programa de COBOL tiene cuatro secciones principales llamadas divisiones. Se trata de identificación, entorno, datos y procedimiento. Datos de fecha, va en la división de datos, un área que describe las estructuras de memoria.

2 Determinar cómo las fechas se almacenan en disco. Las fechas se almacenan a menudo como CRUDOS números en formato AAAAMMDD. Por ejemplo, 10 de febrero de 2014 por lo general se almacenan como 20140210. Representado en COBOL, la estructura de la fecha en la división de datos tiene este aspecto:

01 REGISTRO DE DATOS.

… data fields … 03 EVENT-DATE. 05 EVENT-YEAR PIC 9999. 05 EVENT-MONTH PIC 99. 05 EVENT-DAY PIC 99. .. more fields ..

Consigue leer una fila de datos en el elemento de registro de datos, que se subdivide en un número de campos. El campo de fecha (fecha del evento) se almacena en algún lugar en cada fila de datos en formato AAAAMMDD. La fecha se subdivide en campos año, mes y día.

3 Definir una estructura donde las fechas pueden ser aceptadas desde la consola. Porque las fechas se escriben generalmente en formato MM/DD/AAAA, la estructura debe reflejar esto.

FECHA 01-PULG.

03 MM-IN PIC 99. 03 FILLER PIC X. 03 DD-IN PIC 99. 03 FILLER PIC X. 03 YYYY-IN PIC 9999.4

Definir el almacenamiento para la fecha de inicio y fecha fin. Después de las fechas Haz leídas en la estructura de fecha-IN, debe formatear a formato AAAAMMDD. Las estructuras de la fecha de inicio y fecha final tendrá estos valores.

FECHA DE INICIO 01.

03 START-YYYY PIC 9999. 03 START-MM PIC 99. 03 START-DD PIC 99.

Crear una estructura similar fecha final con campos final-YYYY, MM de extremo y extremo-DD.

5 Aceptar las fechas desde la consola o JCL (Job Control Language) y formatear a formato AAAAMMDD. En la división de procedimiento, agregue el código siguiente:

DIVISIÓN DE PROCEDIMIENTO.0000-INICIO.

DISPLAY “Start Date: “. ACCEPT DATE-IN. START-YYYY = YYYY-IN. START-MM = MM-IN. START-DD = DD-IN.

DISPLAY “End Date: “. ACCEPT DATE-IN. END-YYYY = YYYY-IN. END-MM = MM-IN. END-DD = DD-IN.

El programa se inicia, un mensaje le pedirá la fecha de inicio, el fecha valor es aceptado y luego formatear en el campo de fecha de inicio mediante la asignación de cada campo para referirse a su homólogo de entrada. Se hace el proceso equivalente para la fecha final.

6 Leer un registro y comparar las fechas. Porque todas las fechas están ahora en formato AAAAMMDD, sólo necesita comparar cadenas para determinar si cualquier registro está dentro del rango de fecha que acaba de crear.

REGISTRO DE 0100READ.LEER DATOS EN EL REGISTRO DE DATOS

AT END, GO TO 0900-END.

IF evento - fecha > = fecha de inicio o < = fecha final

PERFORM 1000-PROCESS-DATA.

Cada registro es leer en la estructura de registro de datos, entonces el campo fecha de evento obtiene en comparación con la fecha de inicio y fecha final. En este ejemplo, si fecha del registro entre la fecha inicial y final, el registro es procesado.