我正在单独学习cobol,当我编写我的第一个代码时,我有一些疑问。
我在网站(TutorialsPoint 和 JDoodle)上使用 GnuCOBOL v2.2,我不明白如何通过 comand 窗口输入。有谁知道如何在这些网站上做?
另一件事是关于如何清理终端,当我使用"显示窗口擦除"时,我有一条错误消息:"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
回答整数日期问题
FUNCTION INTEGER-OF-DATE(ccyymmdd)
您需要在PIC 9(8)
字段中使用完整的 4 位年份才能使用此功能。
ACCEPT FROM DATE
返回一个PIC 9(6)
,现在有一个ACCEPT FROM DATE YYYYMMDD
返回PIC 9(8)
的窗体。
INTEGER-OF-DATE()
内部函数采用 8 位格式 (YYYYMMDD) 的日期。您可以使用
FUNCTION CURRENT-DATE
来获取 8 位数的日期。语法
SET datum TO value
通常保留用于索引,对于一般数据,您应该使用MOVE value TO datum
。