1

我在数据库中采用YYYY-MM-DD:hh:min:ss格式的日期变量,我想使用 cobol 程序在报告YYYY-MM-DD HH:MIN:SS中显示它。如何做到这一点?

4

2 回答 2

4

看看内在函数,例如

  • 功能组合-日期时间
  • 功能当前日期
  • 函数日期整数
  • 功能日期到 YYYYMMDD
  • 函数日期整数
  • 函数区域日期
  • 还有很多其他的,谷歌的 OpenCOBOL 常见问题,见第 4.2 节的例子

http://opencobol.add1tocobol.com/#does-opencobol-implement-any-intrinsic-functions

要获取当前时钟,请查看 ACCEPT FROM DATE YYYYMMDD, ACCEPT FROM TIME

然后您可能想要创建一个 PICTURE 数据子句,让您完全控制日期和时间的格式和显示方式。

当您想快速将冒号转换为空格或斜杠等时,我还发现 INSPECT REPLACING 是一件方便的事情。

    identification division.
    program-id. inspecting.

    data division.
    working-storage section.
    01  ORIGINAL            pic XXXX/XX/XXBXX/XX/XXXXXXX/XX.
    01  DATEREC             pic XXXX/XX/XXBXX/XX/XXXXXXX/XX.

    procedure division.

    move function when-compiled to DATEREC ORIGINAL

    INSPECT DATEREC REPLACING ALL "/" BY ":" AFTER INITIAL SPACE

    display
        "Intrinsic function WHEN-COMPILED " ORIGINAL
    end-display
    display
        " after INSPECT REPLACING         " DATEREC
    end-display

    goback.
    end program inspecting.

给予

Intrinsic function WHEN-COMPILED 2010/03/25 23/05/0900-04/00
 after INSPECT REPLACING         2010/03/25 23:05:0900-04:00
于 2012-11-30T02:25:15.370 回答
0

我喜欢详细的 PICTURE 方法,就像 Brian Tiffin 所说的那样,然后您只需使用括号逐个移动数据。

类似: MOVE MY-DATE(1:4) to MY-YEAR, 会将前 4 个字符移动到所需的字段。

于 2013-08-08T16:00:07.927 回答