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


CEESECI - 秒から整数への変換

CEESECI は、1582 年 10 月 14 日の 00:00:00 から数えた秒数を表す数値を、年、月、日、時、分、秒、ミリ秒を表す 2 進整数に変換します。

文字形式ではなく数値形式の出力が必要な場合は、 CEEDATM ではなく CEESECI を使用します。

CALL CEESECI の構文
構文図を読む構文図をスキップする>>-CALL--"CEESECI"--USING--input_seconds,--output_year,--------->
 
>--output_month,--output_day,--output_hours,--output_minutes,--->
 
>--output_seconds,--output_milliseconds,--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) です。

input_seconds が無効な場合は、フィードバック・コードを除くすべての出力パラメーターが 0 に設定されます。

output_year (出力)
年を表す 32 ビットの 2 進整数。

output_year の有効な値範囲は 1582 から 9999 です。

output_month (出力)
月を表す 32 ビットの 2 進整数。

output_month の有効な値範囲は 1 から 12 です。

output_day (出力)
日を表す 32 ビットの 2 進整数。

output_day の有効な値範囲は 1 から 31 です。

output_hours (出力)
時を表す 32 ビットの 2 進整数。

output_hours の有効な値範囲は 0 から 23 です。

output_minutes (出力)
分を表す 32 ビットの 2 進整数。

output_minutes の有効な値範囲は 0 から 59 です。

output_seconds (出力)
秒を表す 32 ビットの 2 進整数。

output_seconds の有効な値範囲は 0 から 59 です。

output_milliseconds (出力)
ミリ秒を表す 32 ビットの 2 進整数。

output_milliseconds の有効な値範囲は 0 から 999 です。

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

表 95. CEESECI のシンボリック条件
シンボリック・フィードバック・コード 重大度 メッセージ番号 メッセージ・テキスト
CEE000 0 サービスが正しく完了した。
CEE2E9 3 2505 CEEDATM または CEESECI への呼び出し内の input_seconds 値が、対応範囲内にありませんでした。

使用上の注意

CBL LIB
      *************************************************
      **                                             **
      ** Function: Call CEESECI to convert seconds   **
      **           to integers                       **
      **                                             **
      ** In this example a call is made to CEESECI   **
      ** to convert a number representing the number **
      ** of seconds since 00:00:00 14 October 1582   **
      ** to seven binary integers representing year, **
      ** month, day, hour, minute, second, and       **
      ** millisecond.  The results are displayed in  **
      ** this example.                               **
      **                                             **
      *************************************************
       IDENTIFICATION DIVISION.
       PROGRAM-ID. CBLSECI.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  INSECS                  COMP-2.
       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  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  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-CBLSECS.
      *************************************************
      ** 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,
                                INSECS, FC.
           IF NOT CEE000 of FC  THEN
               DISPLAY 'CEESECS failed with msg '
                   Msg-No of FC UPON CONSOLE
               STOP RUN
           END-IF.

       PARA-CBLSECI.
      *************************************************
      ** Call CEESECI to convert seconds to integers
      *************************************************
           CALL 'CEESECI' USING INSECS, YEAR, MONTH,
                                DAYS, HOURS,  MINUTES,
                                SECONDS, MILLSEC, FC.
      *************************************************
      ** If CEESECI runs successfully, display results
      *************************************************
           IF CEE000 of FC  THEN
               DISPLAY 'Input seconds of ' INSECS
                   ' represents:'
               DISPLAY '   Year......... ' YEAR
               DISPLAY '   Month........ ' MONTH
               DISPLAY '   Day.......... ' DAYS
               DISPLAY '   Hour......... ' HOURS
               DISPLAY '   Minute....... ' MINUTES
               DISPLAY '   Second....... ' SECONDS
               DISPLAY '   Millisecond.. ' MILLSEC
           ELSE
               DISPLAY 'CEESECI failed with msg '
                   Msg-No of FC UPON CONSOLE
               STOP RUN
           END-IF.

           GOBACK.

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

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