CEEISEC: 将整数转换为秒

CEEISEC 将表示年,月,日,小时,分钟,秒和毫秒的二进制整数转换为表示自 1582 年 10 月 14 日 00:00:00 以来的秒数的数字。

CALL CEEISEC 语法

读取语法图跳过可视语法图CALL"CEEISEC"USING输入年份,输入月,输入日,输入小时,输入分钟数,输入秒数,输入毫秒,输出秒数,FC.

input_year (输入)
表示年份的 32 位二进制整数。

input_year 的有效值范围为 1582 到 9999 (包括 1582 和 9999)。

input_month (输入)
表示月份的 32 位二进制整数。

input_month 的有效值范围是 1 到 12。

input_day (输入)
表示日的 32 位二进制整数。

input_day 的有效值范围为 1 到 31。

input_hours (输入)
表示小时的 32 位二进制整数。

input_hours 的有效值范围为 0 到 23。

input_minutes (输入)
表示分钟的 32 位二进制整数。

input_minutes 的有效值范围为 0 到 59。

input_seconds (输入)
表示秒数的 32 位二进制整数。

input_seconds 的有效值范围为 0 到 59。

input_毫秒 (输入)
表示毫秒的 32 位二进制整数。

input_毫秒 的有效值范围是 0 到 999。

output_seconds (输出)
64 位长浮点数,表示自 1582 年 10 月 14 日 00:00:00 以来的秒数,不计入闰秒。

例如, 1582 年 10 月 15 日的 00:00:01 是第二个数字 86,401 (24 * 60 * 60 + 01)。 输出秒的有效范围是86400到265621679, 999.999 ( 23:59:59.999 31 December 9999)。

如果任何输入值无效,那么 output_seconds 将设置为零。

要将 output_seconds 转换为 Lilian 日数,请将 output_seconds 除以 86,400 (一天中的秒数)。

fc (输出)
指示此服务结果的 12 字节反馈代码 (可选)。

表 1. CEEISEC 符号条件
符号反馈代码 严重性 消息号 消息文本
CEE000 0 -- 服务已成功完成。
CEE2EE 3 2510 无法识别对 CEEISEC 或 CEESECS 的调用中的小时值。
CEE2EF 3 2511 在 CEEISEC 调用中传递的日期参数对于指定的年份和月份无效。
CEE2EH 3 2513 在 CEEISEC , CEEDAYS 或 CEESECS 调用中传递的输入日期不在受支持的范围内。
CEE2EI 3 2514 在 CEEISEC 调用中传递的年份值不在受支持的范围内。
CEE2EJ 3 2515 无法识别 CEEISEC 调用中的毫秒值。
CEE2EK 3 2516 未识别 CEEISEC 调用中的分钟值。
CEE2EL 3 2517 未识别 CEEISEC 调用中的月份值。
CEE2EN 3 2519 未识别 CEEISEC 调用中的秒数值。

用法说明: CEEISEC 的逆函数是 CEESECI ,它将秒数转换为整数年,月,日,小时,分钟,秒和毫秒。

示例


*************************************************
**                                             **
** Function: Call CEEISEC to convert integers  **
**           to seconds                        **
**                                             **
*************************************************
 IDENTIFICATION DIVISION.
 PROGRAM-ID. CBLISEC.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01  YEAR                    PIC S9(9) BINARY.
 01  MONTH                   PIC S9(9) BINARY.
 01  DAYS                    PIC S9(9) BINARY.
 01  HOURS                   PIC S9(9) BINARY.
 01  MINUTES                 PIC S9(9) BINARY.
 01  SECONDS                 PIC S9(9) BINARY.
 01  MILLSEC                 PIC S9(9) BINARY.
 01  OUTSECS                 COMP-2.
 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-CBLISEC.
*************************************************
** Specify seven binary integers representing  **
** the date and time as input to be converted  **
** to Lilian seconds                           **
*************************************************
     MOVE 2000 TO YEAR.
     MOVE 1 TO MONTH.
     MOVE 1 TO DAYS.
     MOVE 0 TO HOURS.
     MOVE 0 TO MINUTES.
     MOVE 0 TO SECONDS.
     MOVE 0 TO MILLSEC.
*************************************************
** Call CEEISEC to convert the integers        **
** to seconds                                  **
*************************************************
     CALL 'CEEISEC' USING YEAR, MONTH, DAYS,
                          HOURS, MINUTES, SECONDS,
                          MILLSEC, OUTSECS , FC.
*************************************************
** If CEEISEC runs successfully, display result**
*************************************************
     IF CEE000 of FC  THEN
         DISPLAY MONTH '/' DAYS '/' YEAR
           ' AT ' HOURS ':' MINUTES ':' SECONDS
           ' is equivalent to ' OUTSECS ' seconds'
     ELSE
         DISPLAY 'CEEISEC failed with msg '
           Msg-No of FC UPON CONSOLE
         STOP RUN
     END-IF.

     GOBACK.