2015-09-18 2 views
0

Я новичок в COBOL и, следовательно, не знаком со всей логикой управления, так как она сильно отличается от других языков высокого уровня. У меня возникла проблема с проверкой параметра даты при чтении его из заданного входного файла для условия високосного года. Кто-нибудь может дать код для этого?Как применить логику проверки високосного года в cobol

ответ

1

Вот один метод WS-YYYY можно определить как 9 (4) ДИСПЛЕЙ, S9 (4) ДИСПЛЕЙ или S9 (4) COMP. Другие переменные определены в РАБОЧЕМ ХРАНЕНИИ как S9 (4) COMP.

DIVIDE WS-YYYY BY 4 GIVING YEAR-BY-4 REMAINDER YEAR-BY-4-REMAINDER. 
DIVIDE WS-YYYY BY 100 GIVING YEAR-BY-100 REMAINDER YEAR-BY-100-REMAINDER. 
DIVIDE WS-YYYY BY 400 GIVING YEAR-BY-400 REMAINDER YEAR-BY-400-REMAINDER. 

IF YEAR-BY-400-REMAINDER = 0 
    // LEAP YEAR CODE 
ELSE IF YEAR-BY-100-REMAINDER = 0 
    // NON-LEAP YEAR CODE 
ELSE IF YEAR-BY-4-REMAINDER = 0 
    // LEAP YEAR CODE 
ELSE 
    // NON-LEAP YEAR CODE 
. (period) 
+0

Я нахожу, что ОЦЕНКА значительно легче читать и обслуживать. Это может быть только предпочтение стиля с моей стороны. – cschneid