Возрождение устаревших систем: манипулирование датами в COBOL

  1. Получение текущей даты:
    Чтобы получить текущую дату в COBOL, вы можете использовать встроенную функцию под названием «FUNCTION CURRENT-DATE». Эта функция возвращает текущую дату и время, позволяя вам извлечь определенные компоненты, такие как год, месяц и день, для дальнейших манипуляций.

Пример кода:

01 CURRENT-DATE.
   05 CD-YEAR         PIC 9(4).
   05 CD-MONTH        PIC 9(2).
   05 CD-DAY          PIC 9(2).

MOVE FUNCTION CURRENT-DATE TO CURRENT-DATE.
DISPLAY "Current Year: " CD-YEAR.
DISPLAY "Current Month: " CD-MONTH.
DISPLAY "Current Day: " CD-DAY.
  1. Добавление или вычитание дней.
    Чтобы добавить или вычесть определенное количество дней к заданной дате, вы можете использовать встроенные функции COBOL «DATE ADD» или «DATE SUB» соответственно. Эти функции позволяют выполнять арифметические операции с датами.

Пример кода:

01 DATE-TO-BE-MODIFIED.
   05 DT-YEAR         PIC 9(4).
   05 DT-MONTH        PIC 9(2).
   05 DT-DAY          PIC 9(2).

MOVE 20240218 TO DATE-TO-BE-MODIFIED.
DISPLAY "Original Date: " DT-YEAR "-" DT-MONTH "-" DT-DAY.
DATE ADD 10 TO DATE-TO-BE-MODIFIED.
DISPLAY "Modified Date (After Adding 10 Days): " DT-YEAR "-" DT-MONTH "-" DT-DAY.
DATE SUB 5 FROM DATE-TO-BE-MODIFIED.
DISPLAY "Modified Date (After Subtracting 5 Days): " DT-YEAR "-" DT-MONTH "-" DT-DAY.
  1. Вычисление разницы между датами.
    COBOL предоставляет встроенную функцию «FUNCTION INTEGER-OF-DATE», которая преобразует дату в целочисленный формат. Вычитая одну целую дату из другой, можно определить количество дней между ними.

Пример кода:

01 DATE-1.
   05 D1-YEAR         PIC 9(4).
   05 D1-MONTH        PIC 9(2).
   05 D1-DAY          PIC 9(2).
01 DATE-2.
   05 D2-YEAR         PIC 9(4).
   05 D2-MONTH        PIC 9(2).
   05 D2-DAY          PIC 9(2).
01 DATE-DIFFERENCE   PIC 9(3).
MOVE 20240218 TO DATE-1.
MOVE 20240210 TO DATE-2.
COMPUTE DATE-DIFFERENCE = FUNCTION INTEGER-OF-DATE(DATE-1) - FUNCTION INTEGER-OF-DATE(DATE-2).
DISPLAY "Number of Days Between Dates: " DATE-DIFFERENCE.

В этой статье блога мы рассмотрели различные методы манипулирования датами в COBOL — устаревшем языке, который до сих пор используется во многих системах. Мы рассмотрели получение текущей даты, добавление или вычитание дней из заданной даты и вычисление разницы между датами. Применяя эти методы, разработчики могут эффективно работать с датами в COBOL, способствуя модернизации и обслуживанию устаревших систем.