整数,命令窗口,库

时间:2018-05-16 15:06:35

标签: cobol

我独自学习cobol,当我编写第一段代码时,我有些疑惑。

我在网站(TutorialsPoint和JDoodle)上使用GnuCOBOL v2.2并且我不了解如何通过命令窗口输入输入。有谁知道这些网站是如何做到的?

当我使用" DISPLAY WINDOW ERASE"我有错误消息:" 140:警告:图形窗口未实现"。我是否需要使用任何库或存在任何其他命令?

还有一个疑问:函数整数 - 日期不转换它提出的,输出只是零。代码如下:

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 :(得分:2)

回答整数日期问题

FUNCTION INTEGER-OF-DATE(ccyymmdd)

您需要在PIC 9(8)字段中使用完整的4位数年份才能使用此功能。

ACCEPT FROM DATE返回PIC 9(6),现在有一个 ACCEPT FROM DATE YYYYMMDD表单,返回PIC 9(8)

答案 1 :(得分:1)

  1. INTEGER-OF-DATE()内在函数采用8位数格式的日期(YYYYMMDD)。您可以使用FUNCTION CURRENT-DATE获取8位数日期。

  2. 语法SET datum TO value通常是为索引保留的,对于您应该使用的一般数据MOVE value TO datum