日期整数,命令 window,库

Integer-of-date, command window, libraries

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

我在网站(TutorialsPoint 和 JDoodle)上使用 GnuCOBOL v2.2,但我不明白如何通过命令输入 window。有谁知道如何在这些网站上做到这一点?

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

还有一个疑点:函数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

回答日期整数问题

FUNCTION INTEGER-OF-DATE(ccyymmdd)

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

ACCEPT FROM DATEreturns一个PIC 9(6),现在有一个 ACCEPT FROM DATE YYYYMMDD 形成 returns 一个 PIC 9(8).

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

  2. 语法SET datum TO value通常用于索引,对于一般数据你应该使用MOVE value TO datum