Cómo comprobar el intervalo de fechas en COBOL

COBOL puede parecer anticuado en comparación con los lenguajes orientados a objetos, pero aún se mantiene viva en mainframes legados que es probable que asegurar su uso en los próximos años el número de cómputo del veloz. Para los expertos en Java o C #, puede venir como una sorpresa que esta lengua no tiene primitivas de la fecha, sin embargo, gran parte del código de la aplicación depende de las dependencias de la fecha. Aquí hay algunos consejos para manejar fechas en COBOL. Instrucciones
1

Comprender la estructura básica de COBOL. Cada programa COBOL tiene cuatro secciones principales llamadas divisiones. Estos son IDENTIFICACIÓN, MEDIO AMBIENTE, LOS 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 el disco. Fechas a menudo se almacenan como números en bruto en formato AAAAMMDD. Por ejemplo, 10 de febrero 2014 normalmente se almacena como 20140210. Representado en COBOL, la estructura de la fecha en la División DATOS aspecto:

01 DATA-RECOR D. ... campos de datos ... 03 EVENT-DATE 0.05 EVENTO AÑOS PIC 9,999.05 CASO MESES PIC 99.05 EVENT-DAY PIC 99 ... más campos ..

Una fila de datos se leen en el elemento de datos-RECORD, que se subdivide en una serie de campos. La fecha del evento de campo (CASO-DATE) se almacena en algún lugar de cada fila de datos en formato AAAAMMDD. La fecha en que se subdivide en campos de día, mes y año.
3

Definir una estructura en la que las fechas pueden ser aceptadas desde la consola. Dado que las fechas se suelen introducir en formato MM /DD /YYYY, la estructura debe reflejar esto.

01 DATE-IN 0.03 MM-EN RELLENO 99,03 PIC PIC X.03 DD-EN RELLENO 99,03 PIC PIC X. 03 YYYY-IN PIC 9999.
4

Definir el almacenamiento tanto para la fecha de inicio y fecha de finalización. Después de las fechas son leídos en la FECHA EN estructura, tienen que volver a formatear en formato AAAAMMDD. Las estructuras de la fecha de inicio y de fin FECHA mantendrán estos valores.

01 START-DATE 0,03 START-AAAA PIC 9,999.03 START-MM 99,03 START-DD PIC PIC 99.

Crear un estructura similar FINAL FECHA con campos END-YYYY, FIN-MM-DD y END.
5

Acepte las fechas de la consola o JCL (Job Control Language) y dar nuevo formato a formato AAAAMMDD. En la División de Procedimiento, agregue el código siguiente:

PROCEDIMIENTO DIVISION.0000-START.DISPLAY "Fecha de inicio:" ACEPTAR FECHA-IN.START-AAAA = AAAA-MM-IN.START = MM-IN. . START-DD = DD-EN

DISPLAY. "Fecha de finalización:." ACEPTAR FECHA-IN.END-AAAA = AAAA-MM = IN.END-MM-DD = IN.END-DD-EN .

El programa arranca, un mensaje que pide la fecha de inicio, la fecha valor es aceptado y luego formatear en el campo de fecha de inicio mediante la asignación de cada campo para hacer referencia a su homólogo de entrada. El proceso se hace equivalente a la fecha de finalización.
6

Leer un registro y comparar las fechas. . Debido a que todas las fechas están en formato AAAAMMDD, sólo es necesario comparar cadenas para determinar si algún registro se encuentra dentro del rango de fecha que acaba de crear

DATOS 0100READ-RECORD.READ EN DATOS RECORDAT END, vaya a 0900 - . End of

si el evento -. FECHA> = fecha de inicio o <= FIN-DATEPERFORM 1000-PROCESO-DATA

Cada registro se lee en la estructura de datos-RECORD, entonces el campo EVENT-Date obtiene en comparación con los campos FINAL FECHA DE INICIO FECHA-y. En este ejemplo, si la fecha del registro se encuentra entre la fecha de inicio y fin, el registro se procesa.