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


CEEDAYS - 日付からリリアン形式への変換

CEEDAYS は、日付を表すストリングをリリアン形式に変換します。リリアン形式では、グレゴリオ暦の開始日 (1582 年 10 月 14 日 金曜日) から数えた日数として日付を表します。

CEEDAYS を COBOL 組み込み関数と併用しないでください。CEECBLDY は、組み込み関数を使用するプログラムに使用します。

CALL CEEDAYS の構文
構文図を読む構文図をスキップする>>-CALL--"CEEDAYS"--USING--input_char_date,--picture_string,---->
 
>--output_Lilian_date,--fc.------------------------------------><
 
input_char_date (入力)
picture_string の指定に準拠した形式で日付またはタイム・スタンプを表す、ハーフワード長の接頭部の付いた文字ストリング。

文字ストリングに含められる文字数は 5 から 255 文字です。input_char_date には、先行または末尾ブランクを含めることができます。日付の構文解析は、最初の非ブランク文字から始まります (ピクチャー・ストリング自体に先行ブランクが含まれる場合は、CEEDAYS がその位置を正確にスキップした後、構文解析が始まります)。

CEEDAYS は、picture_string で指定された日付形式によって判別される有効な日付を解析したら、残りの文字をすべて無視します。有効な日付範囲は、1582 年 10 月 15 日から 9999 年 12 月 31 日です。

picture_string (入力)
input_char_date で指定された日付の形式を示す、ハーフワード長の接頭部の付いた文字ストリング。

picture_string 内の各文字は、input_char_date 内の文字に対応します。例えば、MMDDYY を picture_string として指定すると、CEEDAYS は input_char_date の値 060288 を 1988 年 6 月 2 日として読み取ります。

スラッシュ (/) などの区切り文字がピクチャー・ストリング内にある場合は、先行ゼロを省略することができます。例えば、次の CEEDAYS の呼び出しは、同じ値 148155 (1988 年 6 月 2 日) をそれぞれ lildate に割り当てます。

 

CALL CEEDAYS USING '6/2/88'  , 'MM/DD/YY', lildate, fc.
CALL CEEDAYS USING '06/02/88', 'MM/DD/YY', lildate, fc.
CALL CEEDAYS USING '060288'  , 'MMDDYY'  , lildate, fc.
CALL CEEDAYS USING '88154'   , 'YYDDD'   , lildate, fc.

picture_string にコロンやスラッシュなどの文字 (例: HH:MI:SS YY/MM/DD) が含まれる場合はプレースホルダーと見なされますが、それ以外の場合は無視されます。

picture_string に日本元号のシンボル <JJJJ> が含まれる場合は、input_char_dateYY の位置に、日本元号での年号が入ります。例えば、1988 年は日本の昭和 63 年に相当します。

output_Lilian_date (出力)
リリアン日付 (1582 年 10 月 14 日から数えた日数) を表す 32 ビットの 2 進整数。例えば、1988 年 5 月 16 日は、日数 148138 に相当します。

input_char_date に有効な日付が含まれていない場合は、output_Lilian_date が 0 に設定され、CEEDAYS が終了して非 CEE000 シンボリック・フィードバック・コードが戻されます。

output_Lilian_date は整数なので、日付計算を容易に行うことができます。うるう年や年末偏差は計算に影響しません。

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

表 87. CEEDAYS のシンボリック条件
シンボリック・フィードバック・コード 重大度 メッセージ番号 メッセージ・テキスト
CEE000 0 サービスが正しく完了した。
CEE2EB 3 2507 CEEDAYS または CEESECS に渡されたデータが不十分です。リリアン日付の値は計算されませんでした。
CEE2EC 3 2508 CEEDAYS または CEESECS に渡された日付値が無効です。
CEE2ED 3 2509 CEEDAYS または CEESECS に渡された元号が認識されませんでした。
CEE2EH 3 2513 CEEISEC、CEEDAYS、CEESECS のいずれかの呼び出しで渡された入力日付が、対応範囲内にありませんでした。
CEE2EL 3 2517 CEEISEC 呼び出し内の月の値が認識されませんでした。
CEE2EM 3 2518 日時サービスへの呼び出しに無効なピクチャー・ストリングが指定されました。
CEE2EO 3 2520 CEEDAYS が数値フィールド内に非数値データを検出したか、あるいは日付ストリングとピクチャー・ストリングが一致しませんでした。
CEE2EP 3 2521 CEEDAYS または CEESECS に渡された <JJJJ>、 <CCCC>、または <CCCCCCCC> の元号年数値がゼロでした。

使用上の注意

CBL LIB
      *******************************************
      **                                       **
      ** Function: CEEDAYS - convert date to   **
      **                     Lilian format     **
      **                                       **
      *******************************************
       IDENTIFICATION DIVISION.
       PROGRAM-ID. CBLDAYS.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  CHRDATE.
           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 CHRDATE.
       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  LILIAN                  PIC S9(9) BINARY.
       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.
      *************************************************
      ** Specify input date and length               **
      *************************************************
           MOVE 16 TO Vstring-length of CHRDATE.
           MOVE '1 January 2005'
               TO Vstring-text of CHRDATE.

      *************************************************
      ** Specify a picture string that describes     **
      ** input date, and the picture string's length.**
      *************************************************
           MOVE 25 TO Vstring-length of PICSTR.
           MOVE 'ZD Mmmmmmmmmmmmmmz YYYY'
                   TO Vstring-text of PICSTR.

      *************************************************
      ** Call CEEDAYS to convert input date to a     **
      ** Lilian date                                 **
      *************************************************
           CALL 'CEEDAYS' USING CHRDATE, PICSTR,
                                LILIAN, FC.

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

           GOBACK.

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

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


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

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