CEEDATE: 将 Lilian 日期转换为字符格式

CEEDATE 将表示 Lilian 日期的数字转换为以字符格式写入的日期。 输出是字符串,例如 2010/04/23

CALL CEEDATE 语法

读取语法图跳过可视语法图CALL"CEEDATE"USING输入_Lilian_日期,picture_string,输出日期,FC.
input_Lilian_date (输入)
表示 Lilian 日期的 32 位整数。 Lilian 日期是自 1582 年 10 月 14 日以来的天数。 例如, 1988 年 5 月 16 日是 Lilian 日号 148138。 Lilian 日期的有效范围是 1 到 3,074,324 (1582 年 10 月 15 日至 9999 年 12 月 31 日)。
picture_string (输入)
半字长度前缀字符串,表示 output_char_date必需 格式,例如 MM/DD/YYpicture_string 中的每个字符表示 output_char_date中的一个字符。 如果诸如斜杠 (/) 之类的定界符出现在图片字符串中,那么它们将按原样复制到 output_char_date

如果 picture_string 包含日语 Era 符号 <JJJJ>,那么 output_char_date 中的 YY 位置将替换为日语 Era 中的年号。 例如, 1988 年等于昭和时代的日本第 63 年。

output_char_date (输出)
input_Lilian_date 转换为 picture_string指定的格式所生成的固定长度 80 个字符的字符串。 如果 input_Lilian_date 无效,那么 output_char_date 将设置为所有空白,并且 CEEDATE 将以 non-CEE000 符号反馈代码终止。
fc (输出)
指示此服务结果的 12 字节反馈代码 (可选)。
表 1. CEEDATE 符号条件
符号反馈代码 严重性 消息号 消息文本
CEE000 0 -- 服务已成功完成。
CEE2EG 3 2512 在对 CEEDATE 或 CEEDYWK 的调用中传递的 Lilian 日期值不在受支持的范围内。
CEE2EM 3 2518 在对日期/时间服务的调用中指定了无效的图片字符串。
CEE2EQ 3 2522 传递给 CEEDATE 的图片字符串中使用了年代(<JJJJ>、<CCCCC> 或 <CCCCCCC>),但 Lilian 日期值不在支持的范围内。 无法确定纪元。
CEE2EU 2 2526 CEEDATE 返回的日期字符串被截断。
CEE2F6 1 2534 在对 CEEDATE 或 CEEDATM 的调用中为月份或工作日名称指定的字段宽度不足。 输出已设置为空格。

用法说明: CEEDATE 的逆函数是 CEEDAYS ,它将字符日期转换为 Lilian 格式。

示例


************************************************
**                                            **
** Function: CEEDATE - convert Lilian date to **
**                     character format       **
**                                            **
** In this example, a call is made to CEEDATE **
** to convert a Lilian date (the number of    **
** days since 14 October 1582) to a character **
** format (such as 6/22/98). The result is    **
** displayed.  The Lilian date is obtained    **
** via a call to CEEDAYS.                     **
**                                            **
************************************************
 IDENTIFICATION DIVISION.
 PROGRAM-ID. CBLDATE.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01  LILIAN                  PIC S9(9) BINARY.
 01  CHRDATE                 PIC X(80).
 01  IN-DATE.
     02  Vstring-length      PIC S9(4) BINARY.
     02  Vstring-text.
         03  Vstring-char    PIC X
                     OCCURS 0 TO 256 TIMES
                     DEPENDING ON Vstring-length
                         of IN-DATE.
 01  PICSTR.
     02  Vstring-length      PIC S9(4) BINARY.
     02  Vstring-text.
         03  Vstring-char    PIC X
                     OCCURS 0 TO 256 TIMES
                     DEPENDING ON Vstring-length
                        of PICSTR.
 01  FC.
     02  Condition-Token-Value.
     COPY  CEEIGZCT.
         03  Case-1-Condition-ID.
             04  Severity    PIC S9(4) COMP.
             04  Msg-No      PIC S9(4) COMP.
         03  Case-2-Condition-ID
                   REDEFINES Case-1-Condition-ID.
             04  Class-Code  PIC S9(4) COMP.
             04  Cause-Code  PIC S9(4) COMP.
         03  Case-Sev-Ctl    PIC X.
         03  Facility-ID     PIC XXX.
     02  I-S-Info            PIC S9(9) COMP.
*
 PROCEDURE DIVISION.
 PARA-CBLDAYS.
*************************************************
** Call CEEDAYS to convert date of 6/2/98 to   **
**     Lilian representation                   **
*************************************************
     MOVE 6 TO Vstring-length of IN-DATE.
     MOVE '6/2/98' TO Vstring-text of IN-DATE(1:6).
     MOVE 8 TO Vstring-length of PICSTR.
     MOVE 'MM/DD/YY' TO Vstring-text of PICSTR(1:8).
     CALL 'CEEDAYS' USING IN-DATE, PICSTR,
                          LILIAN, FC.

*************************************************
** If CEEDAYS runs successfully, display result**
*************************************************
     IF  CEE000 of FC  THEN
         DISPLAY Vstring-text of IN-DATE
             ' is Lilian day: ' LILIAN
     ELSE
         DISPLAY 'CEEDAYS failed with msg '
             Msg-No of FC UPON CONSOLE
         STOP RUN
     END-IF.

*************************************************
** Specify picture string that describes the   **
**  required format of the output from CEEDATE, **
**  and the picture string's length.           **
*************************************************
     MOVE 23 TO Vstring-length OF PICSTR.
     MOVE 'ZD Mmmmmmmmmmmmmmz YYYY' TO
                  Vstring-text OF PICSTR(1:23).

*************************************************
** Call CEEDATE to convert the Lilian date     **
**     to  a picture string.                   **
*************************************************
     CALL 'CEEDATE' USING LILIAN, PICSTR,
                          CHRDATE, FC.

*************************************************
** If CEEDATE runs successfully, display result**
*************************************************
     IF CEE000 of FC  THEN
         DISPLAY 'Input Lilian date of ' LILIAN
             ' corresponds to:  ' CHRDATE
     ELSE
         DISPLAY 'CEEDATE failed with msg '
             Msg-No of FC UPON CONSOLE
         STOP RUN
     END-IF.

     GOBACK.

下表显示了 CEEDATE 的样本输出。

输入_Lilian_日期 picture_string 输出日期
148138 YY 98
YYMM 9805
YY-MM 98-05
YYMMDD 980516
YYYYMMDD 19980516
YYYY-MM-DD 1998-05-16
YYYY-ZM-ZD 1998-5-16
<JJJJ> YY.MM.DD Showa 63.05.16 (在 DBCS 字符串中)
148139 MM 05
MMDD 0517
MM/DD 05/17
MMDDYY 051798
MM/DD/YYYY 05/17/1998
ZM/DD/YYYY 5/17/1998
148140 DD 18
DDMM 1805
DDMMYY 180598
DD.MM.YY 18.05.98
DD.MM.YYYY 18.05.1998
DD Mmm YYYY 1998 年 5 月 18 日
148141 DDD 140
YYDDD 98140
YY.DDD 98.140
YYYY.DDD 1998.140
148142 YY/MM/DD HH:MI:SS.99 98/05/20 00:00:00.00
YYYY/ZM/ZD ZH:MI AP 1998/5/20 上午 0:00
148143 WWW., MMM DD, YYYY SAT , 1998 年 5 月 21 日
Www., Mmm DD, YYYY 萨特 一九九八年五月二十一日
Wwwwwwwwww, Mmmmmmmmmm DD, YYYY 一九九八年五月二十一日 (星期六)
Wwwwwwwwwz, Mmmmmmmmmz DD, YYYY 一九九八年五月二十一日 (星期六)

示例:日期和时间图片字符串

相关参考资料
图片字符术语和字符串