ヘッダーをスキップ
Oracle® C++ Call Interfaceプログラマーズ・ガイド,
11g リリース2 (11.2)
B72452-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

IntervalDSクラス

IntervalDSクラスは、日、時、分、秒および小数秒での各時間隔計算をカプセル化したものです。先行フィールド精度は、日を入力する際の桁数によって決まります。小数秒精度は、入力時の小数桁数によって決まります。

表13-19 IntervalDSクラスのフィールド

フィールド 説明

day

int

日のコンポーネントを指定します。有効な値は、-10の9乗〜10の9乗です。

hour

int

時のコンポーネントを指定します。有効な値は、-2323です。

minute

int

分のコンポーネントを指定します。有効な値は、-5959です。

second

int

秒のコンポーネントを指定します。有効な値は、-5959です。

fs

int

小数秒のコンポーネントを指定します。NULLIntervalDSオブジェクトが作成されます。NULLintervalDSは、fromTextメソッドを割り当てるか、コールすることによって初期化できます。NULLIntervalDSオブジェクトでコールできるメソッドは、setName()isNull()です。


例13-6 直接割当てを使用した空のIntervalDSオブジェクトの使用方法

この例では、デフォルト・コンストラクタによるNULL値を作成し、日時時間隔にNULL以外の値を割り当て、それに基づいて操作を実行する方法が示されています。

Environment *env = Environment::createEnvironment();

// Create a NULL day-second interval
IntervalDS ds;
if(ds.isNull())
   cout << "\n ds is null";

// Assign a non-NULL value to ds
IntervalDS anotherDS(env, "10 20:14:10.2");
ds = anotherDS;

// Now all operations on IntervalDS are valid
int DAY = ds.getDay();

例13-7 *Text()メソッドを使用した空のIntervalDSオブジェクトの使用方法

この例では、NULLの日時時間隔を作成してfromText()メソッドで初期化し、次に、+=演算子で日時時間隔に追加し、*演算子を使用して乗算した後で、2つの日時時間隔を比較し、一方の日時時間隔をtoTextメソッドで文字列に変換する方法が示されています。

Environment *env = Environment::createEnvironment();

// Create a null day-second interval
IntervalDS ds1

// Initialize a null day-second interval by using the fromText method
ds1.fromText("20 10:20:30.9","",env);

IntervalDS addWith(env,2,1);
ds1 += addWith;    //call += operator

IntervalDS mulDs1=ds1 * Number(env,10);  
                   //call * operator
if(ds1==mulDs1)    //call == operator
   .
   .
string strds=ds1.toText(2,4);                       //2 is leading field precision
                   //4 is the fractional field precision

表13-20 IntervalDSメソッドの概要

メソッド 概要

IntervalDS()


IntervalDSクラスのコンストラクタです。

fromText()


stringから変換されたIntervalDSを戻します。

fromUText()


UStringから変換されたIntervalDSを戻します。

getDay()


日の時間隔値を戻します。

getHour()


小数秒の時間隔値を戻します。

getFracSec()


時の時間隔値を戻します。

getMinute()


分の時間隔値を戻します。

getSecond()


秒の時間隔値を戻します。

isNull()


IntervalDSNULLの場合はtrueを、それ以外の場合はfalseを戻します。

operator*()


2つのIntervalDS値の積を戻します。

operator*=()


乗算による割当てを行います。

operator=()


単純割当てを行います。

operator==()


abが等しいかどうかをチェックします。

operator!=()


abが等しくないかどうかをチェックします。

operator/()


IntervalDS(a / b)の値で戻します。

operator/=()


除算による割当てを行います。

operator>()


abを超えているかどうかをチェックします。

operator>=()


ab以上かどうかをチェックします。

operator<()


ab未満かどうかをチェックします。

operator<=()


ab以下かどうかをチェックします。

operator-()


IntervalDSを(a - b)の値で戻します。

-=


減算による割当てを行います。

operator+()


2つのIntervalDS値の合計を戻します。

operator+=()


加算による割当てを行います。

set()


日時時間隔を設定します。

setNull()


日時時間隔をNULLに設定します。

toText()


時間隔をstring表現に変換します。

toUText()


時間隔をUString表現に変換します。



IntervalDS()

IntervalDSクラスのコンストラクタです。

構文 説明
IntervalDS();
NULLIntervalDSオブジェクトが作成されます。NULLIntervalDSは、fromTextメソッドを割り当てるか、コールすることによって初期化できます。NULLIntervalDSオブジェクトでコールできるメソッドは、setName()isNull()です。
IntervalDS(
   const Environment *env,
   int day = 0,
   int hour = 0,
   int minute = 0,
   int second = 0,
   int fs = 0);
指定されたEnvironment内でIntervalDSオブジェクトを構成します。
IntervalDS(
   const IntervalDS &src);
srcからIntervalYMオブジェクトが作成されます。

パラメータ 説明
env
Environmentを指定します。
day
IntervalDSdayフィールドを指定します。
hour
IntervalDShourフィールドを指定します。
minute
IntervalDSminuteフィールドを指定します。
second
IntervalDSのsecondフィールドを指定します。
fs
IntervalDSfsフィールドを指定します。
src
IntervalDSオブジェクトのコピー元を指定します。


fromText()

指定した文字列から時間隔を作成します。文字列は、関連する環境に関連付けられているnlsパラメータを使用して変換されます。nlsパラメータはenvから選択されます。envNULLの場合は、nlsパラメータがインスタンスに関連付けられている環境から選択されます(関連付けられている場合)。

構文

void fromText(
   const string &inpstr,
   const string &nlsParam = "",
   const Environment *env = NULL);
パラメータ 説明
inpstr
日時時間隔を示す、'10 20:14:10.2'などの'日 時:分:秒'形式の文字列を指定します。
nlsParam
NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。
env
NLSパラメータが使用される環境を指定します。


fromUText()

指定したUStringから時間隔を作成します。

構文

void fromUText(
   const UString &inpstr,
   const Environment *env=NULL );
パラメータ 説明
inpstr
日時時間隔を示す、'10 20:14:10.2'などの'日 時:分:秒'形式のUStringを指定します。
env
Environmentを指定します。


getDay()

時間隔の日要素を戻します。

構文

int getDay() const;

getFracSec()

時間隔の小数秒要素を戻します。

構文

int getFracSec() const;

getHour()

時間隔の時要素を戻します。

構文

int getHour() const;

getMinute()

時間隔の分要素を戻します。

構文

int getMinute() const;

getSecond()

時間隔の秒要素を戻します。

構文

int getSecond() const;

isNull()

時間隔がNULLかどうかをテストします。時間隔がNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

operator*()

時間隔に指定の値を乗算し、その結果を戻します。

構文

const IntervalDS operator*(
   const IntervalDS &interval,
   const Number &val);
パラメータ 説明
interval
乗算する時間隔を指定します。
val
時間隔に乗算する値を指定します。


operator*=()

IntervalDSaの積をIntervalDSに割り当てます。

構文

IntervalDS& operator*=(
   const IntervalDS &factor);
パラメータ 説明
factor
日時時間隔を指定します。


operator=()

指定された値を時間隔に割り当てます。

構文

IntervalDS& operator=(
   const IntervalDS &src);
パラメータ 説明
src
割り当てる値を指定します。


operator==()

指定した2つの時間隔を比較します。2つの時間隔が等しい場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator==(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator!=()

指定した2つの時間隔を比較します。2つの時間隔が等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator!=(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator/()

時間隔を定数値で除算した結果を戻します。

構文

const IntervalDS operator/(
   const IntervalDS &dividend,
   const Number &factor);
パラメータ 説明
dividend
被除数の時間隔を指定します。
factor
時間隔を除算する値を指定します。


operator/=()

IntervalDSvalの商をIntervalDSに割り当てます。

構文

IntervalDS& operator/=(
   const IntervalDS &factor);
パラメータ 説明
factor
日時時間隔を指定します。


operator>()

指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔より長い場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator>(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator>=()

指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔以上の長さの場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator>=(
   const IntervalDS &first,
   const IntervalDS &first);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator<()

指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔より短い場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator<(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator<=()

指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔以下の長さの場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator<=(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator-()

firstsecondの2つの時間隔の差を戻します。

構文

const IntervalDS operator-(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator-=()

IntervalDSvalの差をIntervalDSに割り当てます。

構文

IntervalDS& operator-=(
   const IntervalDS &val);
パラメータ 説明
val
日時時間隔を指定します。


operator+()

指定された時間隔の和を戻します。

構文

const IntervalDS operator+(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first
比較対象の最初の時間隔を指定します。
second
比較対象の第2の時間隔を指定します。


operator+=()

IntervalDSvalの和をIntervalDSに割り当てます。

構文

IntervalDS& operator+=(
   const IntervalDS &val);
パラメータ 説明
val
日時時間隔を指定します。


set()

時間隔を指定した値に設定します。

構文

void set(
   int day,
   int hour,
   int minute,
   int second,
   int fracsec);
パラメータ 説明
day
日のコンポーネントを指定します。
hour
時のコンポーネントを指定します。
min
分のコンポーネントを指定します。
second
秒のコンポーネントを指定します。
fracsec
小数秒のコンポーネントを指定します。


setNull()

IntervalDSNULLに設定します。

構文

void setNull();

toText()

時間隔をstring表現に変換します。

構文

string toText(
   unsigned int lfprec,
   unsigned int fsprec,
   const string &nlsParam = "") const;
パラメータ 説明
lfprec
先行フィールド精度を指定します。
fsprec
小数秒の精度を指定します。
nlsParam
NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。


toUText()

時間隔をUString表現に変換します。

構文

UString toUText(
   unsigned int lfprec,
   unsigned int fsprec) cosnt;
パラメータ 説明
lfprec
先行フィールド精度を指定します。
fsprec
小数秒の精度を指定します。