CEEISEC: 将整数转换为秒
CEEISEC 将表示年,月,日,小时,分钟,秒和毫秒的二进制整数转换为表示自 1582 年 10 月 14 日 00:00:00 以来的秒数的数字。
- 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 字节反馈代码 (可选)。
| 符号反馈代码 | 严重性 | 消息号 | 消息文本 |
|---|---|---|---|
| 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.
