Целое число, окно команд, библиотеки - PullRequest
0 голосов
/ 16 мая 2018

Я изучаю только кобол, и когда я кодировал свой первый код, у меня были некоторые сомнения.

Я использую GnuCOBOL v2.2 на веб-сайтах (TutorialsPoint и JDoodle), и я не понялкак я могу поставить входные данные по окну команды.Кто-нибудь знает, как это сделать на этих веб-сайтах?

Другое дело о том, как очистить терминал, когда я использую «DISPLAY WINDOW ERASE» У меня появляется это сообщение об ошибке: «140: предупреждение: GRAPHICAL WINDOW не реализовано»,Нужно ли мне использовать какую-либо библиотеку или существовать какие-либо другие команды?

Еще одно сомнение: целочисленные значения даты функции не преобразуют, что она предлагает, вывод просто равен нулю.Код ниже:

WORKING-STORAGE SECTION.
77 DATA1 PIC 9(006). 
77 DATA2 PIC 9(006).
77 INTEIRO-1 PIC 9(008).
77 INTEIRO-2 PIC 9(008).
77 DIAS PIC 9(005).


PROCEDURE DIVISION. 
ACCEPT DATA1 FROM DATE
SET DATA2 TO 930217
MOVE FUNCTION INTEGER-OF-DATE (DATA1) TO INTEIRO-1 *> wrong convertion?
MOVE FUNCTION INTEGER-OF-DATE (DATA2) TO INTEIRO-2
COMPUTE DIAS = INTEIRO-2 - INTEIRO-1
DISPLAY X"0A"DATA1 " " DATA2
SET INTEIRO-1 TO FUNCTION INTEGER-OF-DATE(DATA1)
DISPLAY INTEIRO-1 " " INTEIRO-2
DISPLAY "DIAS: " DIAS

Вывод этого кода:

180516 930217
00000000 00000000
DIAS: 00000

Ответы [ 2 ]

0 голосов
/ 16 мая 2018
  1. Встроенная функция INTEGER-OF-DATE() принимает дату в 8-значном формате (ГГГГММДД). Вы можете использовать FUNCTION CURRENT-DATE, чтобы получить 8-значную дату.

  2. Синтаксис SET datum TO value обычно зарезервирован для индексов, для общих данных следует использовать MOVE value TO datum.

0 голосов
/ 16 мая 2018

Ответ на вопрос с целым числом дат

FUNCTION INTEGER-OF-DATE(ccyymmdd)

Вам необходимо использовать полные 4 цифры года в поле PIC 9(8) для этой функции.

ACCEPT FROM DATE возвращает PIC 9(6), и теперь существует форма ACCEPT FROM DATE YYYYMMDD, которая возвращает PIC 9(8).

...