首页 > 解决方案 > 日期整数、命令窗口、库

问题描述

我正在单独学习 cobol,当我编写我的第一个代码时,我有一些疑问。

我在网站(TutorialsPoint 和 JDoodle)上使用 GnuCOBOL v2.2,但我不明白如何通过命令窗口输入。有谁知道在这些网站上是怎么做的?

另一件事是关于如何清洁终端,当我使用“DISPLAY WINDOW ERASE”时,我收到错误消息:“140:警告:未实现图形窗口”。我是否需要使用任何库或存在任何其他命令?

还有一个疑问:函数 integer-of-date 不转换它提出的,输出只是归零。代码如下:

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

标签: cobol

解决方案


回答整数日期问题

FUNCTION INTEGER-OF-DATE(ccyymmdd)

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

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


推荐阅读