CEEDATM は、1582 年 10 月 14 日の 00:00:00 から数えた秒数を表す数値を、文字ストリングに変換します。 出力は、1988/07/26 20:37:00 などの文字ストリングのタイム・スタンプになります。
| CALL CEEDATM の構文 |
|---|
|
例えば、1582 年 10 月 15 日の 00:00:01 は秒数 86,401 (24*60*60 + 01) に相当します。input_seconds の有効範囲は 86,400 から 265,621,679,999.999 (9999 年 12 月 31 日の 23:59:59.999) です。
picture_string 内の各文字は、output_timestamp 内の文字を表します。スラッシュ (/) などの区切り文字がピクチャー・ストリング内にある場合は、現状のまま output_timestamp にコピーされます。
picture_string に日本元号のシンボル <JJJJ> が含まれる場合は、output_timestamp の YY の位置に、日本元号での年号が入ります。
必要に応じて、出力が output_timestamp の長さまで切り詰められます。
input_seconds が無効な場合は、output_timestamp がすべてブランクに設定され、CEEDATM が終了して非 CEE000 シンボリック・フィードバック・コードが戻されます。
| シンボリック・フィードバック・コード | 重大度 | メッセージ番号 | メッセージ・テキスト |
|---|---|---|---|
| CEE000 | 0 | — | サービスが正しく完了した。 |
| CEE2E9 | 3 | 2505 | CEEDATM または CEESECI への呼び出し内の input_seconds 値が、対応範囲内にありませんでした。 |
| CEE2EA | 3 | 2506 | CEEDATM に渡されたピクチャー・ストリング内に元号 (<JJJJ>、<CCCC>、<CCCCCCCC>) が使用されていましたが、入力された秒数値が対応範囲内にありませんでした。元号を判別できませんでした。 |
| CEE2EM | 3 | 2518 | 日時サービスへの呼び出しに無効なピクチャー・ストリングが指定されました。 |
| CEE2EV | 2 | 2527 | CEEDATM によって戻されたタイム・スタンプ・ストリングが切り捨てられました。 |
| CEE2F6 | 1 | 2534 | CEEDATE または CEEDATM への呼び出しで、月または曜日名に対して指定されたフィールド幅が不十分です。出力はブランクに設定されました。 |
使用上の注意: CEEDATM の逆は CEESECS です。CEESECS は、タイム・スタンプを秒数に変換します。
CBL LIB
*************************************************
** **
** Function: CEEDATM - convert seconds to **
** character timestamp **
** **
** In this example, a call is made to CEEDATM **
** to convert a date represented in Lilian **
** seconds (the number of seconds since **
** 00:00:00 14 October 1582) to a character **
** format (such as 06/02/88 10:23:45). The **
** result is displayed. **
** **
*************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. CBLDATM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DEST PIC S9(9) BINARY VALUE 2.
01 SECONDS COMP-2.
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 TIMESTP PIC X(80).
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-CBLDATM.
*************************************************
** Call CEESECS to convert timestamp of 6/2/88 **
** at 10:23:45 AM to Lilian representation **
*************************************************
MOVE 20 TO Vstring-length of IN-DATE.
MOVE '06/02/88 10:23:45 AM'
TO Vstring-text of IN-DATE.
MOVE 20 TO Vstring-length of PICSTR.
MOVE 'MM/DD/YY HH:MI:SS AP'
TO Vstring-text of PICSTR.
CALL 'CEESECS' USING IN-DATE, PICSTR,
SECONDS, FC.
*************************************************
** If CEESECS runs successfully, display result**
*************************************************
IF CEE000 of FC THEN
DISPLAY Vstring-text of IN-DATE
' is Lilian second: ' SECONDS
ELSE
DISPLAY 'CEESECS failed with msg '
Msg-No of FC UPON CONSOLE
STOP RUN
END-IF.
*************************************************
** Specify desired format of the output. **
*************************************************
MOVE 35 TO Vstring-length OF PICSTR.
MOVE 'ZD Mmmmmmmmmmmmmmz YYYY at HH:MI:SS'
TO Vstring-text OF PICSTR.
*************************************************
** Call CEEDATM to convert Lilian seconds to **
** a character timestamp **
*************************************************
CALL 'CEEDATM' USING SECONDS, PICSTR,
TIMESTP, FC.
*************************************************
** If CEEDATM runs successfully, display result**
*************************************************
IF CEE000 of FC THEN
DISPLAY 'Input seconds of ' SECONDS
' corresponds to: ' TIMESTP
ELSE
DISPLAY 'CEEDATM failed with msg '
Msg-No of FC UPON CONSOLE
STOP RUN
END-IF.
GOBACK.
| input_seconds | picture_string | output_timestamp |
|---|---|---|
| 12,799,191,601.000 | YYMMDD
HH:MI:SS YY-MM-DD YYMMDDHHMISS YY-MM-DD HH:MI:SS
YYYY-MM-DD HH:MI:SS AP |
880516
19:00:01 88-05-16 880516190001 88-05-16 19:00:01
1988-05-16 07:00:01 PM |
| 12,799,191,661.986 | DD Mmm YY
DD MMM YY HH:MM
WWW, MMM DD, YYYY ZH:MI AP
Wwwwwwwwwz, ZM/ZD/YY HH:MI:SS.99 |
16 May 88
16 MAY 88 19:01
MON, MAY 16, 1988 7:01 PM
Monday, 5/16/88 19:01:01.98 |
| 12,799,191,662.009 | YYYY
YY Y MM ZM RRRR MMM Mmm Mmmmmmmmmm Mmmmmmmmmz DD ZD DDD HH ZH MI SS 99 999 AP WWW Www Wwwwwwwwww Wwwwwwwwwz |
1988
88 8 05 5 V MAY May May May 16 16 137 19 19 01 02 00 009 PM MON Mon Monday Monday |
関連参照
ピクチャー文字項およびストリング