Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


CEEDATM - 秒から文字タイム・スタンプへの変換

CEEDATM は、1582 年 10 月 14 日の 00:00:00 から数えた秒数を表す数値を、文字ストリングに変換します。 出力は、1988/07/26 20:37:00 などの文字ストリングのタイム・スタンプになります。

CALL CEEDATM の構文
構文図を読む構文図をスキップする>>-CALL--"CEEDATM"--USING--input_seconds,--picture_string,------>
 
>--output_timestamp,--fc.--------------------------------------><
 
input_seconds (入力)
1582 年 10 月 14 日の 00:00:00 から数えた (うるう秒は数えない) 秒数を表す、64 ビット長の浮動小数点数。

例えば、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 の必要な形式 (例: MM/DD/YY HH:MI AP) を表す、ハーフワード長の接頭部の付いた文字ストリング。

picture_string 内の各文字は、output_timestamp 内の文字を表します。スラッシュ (/) などの区切り文字がピクチャー・ストリング内にある場合は、現状のまま output_timestamp にコピーされます。

picture_string に日本元号のシンボル <JJJJ> が含まれる場合は、output_timestampYY の位置に、日本元号での年号が入ります。

output_timestamp (出力)
input_secondspicture_string で指定された形式に変換した結果として生成される、固定長の 80 文字のストリング。

必要に応じて、出力が output_timestamp の長さまで切り詰められます。

input_seconds が無効な場合は、output_timestamp がすべてブランクに設定され、CEEDATM が終了して非 CEE000 シンボリック・フィードバック・コードが戻されます。

fc (出力)
このサービスの結果を示す 12 バイトのフィードバック・コード (オプション)。

表 86. CEEDATM のシンボリック条件
シンボリック・フィードバック・コード 重大度 メッセージ番号 メッセージ・テキスト
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.

次の表に、CEEDATM からの出力例を示します。

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

MAY

May
May
May

16
16
137
19
19
01
02
00
009
PM
MON
Mon
Monday
Monday

例: 日時のピクチャー・ストリング

関連参照
ピクチャー文字項およびストリング


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)