【问题标题】:Display formatted date in COBOL program在 COBOL 程序中显示格式化日期
【发布时间】:2012-11-27 06:51:56
【问题描述】:

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

【问题讨论】:

    标签: cobol cobol85


    【解决方案1】:

    以内部函数为例

    • 函数组合-日期时间
    • 功能当前日期
    • 函数日期整数
    • 功能日期到 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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-02
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多