13.15 IntervalDSクラス

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

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

フィールド 説明

day

int

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

hour

int

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

minute

int

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

second

int

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

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()

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

getFracSec()

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

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-=()

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

operator+()

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

operator+=()

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

set()

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

setNull()

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

toText()

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

toUText()

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

13.15.1 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オブジェクトのコピー元を指定します。

13.15.2 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パラメータが使用される環境を指定します。

13.15.3 fromUText()

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

構文

void fromUText(
   const UString &inpstr,
   const Environment *env=NULL );
パラメータ 説明
inpstr

日時時間隔を示す、'10 20:14:10.2'などの'日 時:分:秒'形式のUStringを指定します。

env

Environmentを指定します。

13.15.4 getDay()

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

構文

int getDay() const;

13.15.5 getFracSec()

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

構文

int getFracSec() const;

13.15.6 getHour()

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

構文

int getHour() const;

13.15.7 getMinute()

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

構文

int getMinute() const;

13.15.8 getSecond()

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

構文

int getSecond() const;

13.15.9 isNull()

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

構文

bool isNull() const;

13.15.10 operator*()

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

構文

const IntervalDS operator*(
   const IntervalDS &interval,
   const Number &val);
パラメータ 説明
interval

乗算する時間隔です。

val

時間隔に乗算する値を指定します。

13.15.11 operator*=()

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

構文

IntervalDS& operator*=(
   const IntervalDS &factor);
パラメータ 説明
factor

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

13.15.12 operator=()

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

構文

IntervalDS& operator=(
   const IntervalDS &src);
パラメータ 説明
src

割り当てる値を指定します。

13.15.13 operator==()

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

構文

bool operator==(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.14 operator!=()

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

構文

bool operator!=(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.15 operator/()

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

構文

const IntervalDS operator/(
   const IntervalDS &dividend,
   const Number &factor);
パラメータ 説明
dividend

被除数の時間隔を指定します。

factor

時間隔を除算する値を指定します。

13.15.16 operator/=()

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

構文

IntervalDS& operator/=(
   const IntervalDS &factor);
パラメータ 説明
factor

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

13.15.17 operator>()

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

構文

bool operator>(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.18 operator>=()

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

構文

bool operator>=(
   const IntervalDS &first,
   const IntervalDS &first);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.19 operator<()

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

構文

bool operator<(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.20 operator<=()

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

構文

bool operator<=(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.21 operator-()

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

構文

const IntervalDS operator-(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.22 operator-=()

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

構文

IntervalDS& operator-=(
   const IntervalDS &val);
パラメータ 説明
val

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

13.15.23 operator+()

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

構文

const IntervalDS operator+(
   const IntervalDS &first,
   const IntervalDS &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.15.24 operator+=()

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

構文

IntervalDS& operator+=(
   const IntervalDS &val);
パラメータ 説明
val

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

13.15.25 set()

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

構文

void set(
   int day,
   int hour,
   int minute,
   int second,
   int fracsec);
パラメータ 説明
day

日のコンポーネントを指定します。

hour

時のコンポーネントを指定します。

min

分のコンポーネントを指定します。

second

秒のコンポーネントを指定します。

fracsec

小数秒のコンポーネントを指定します。

13.15.26 setNull()

IntervalDSNULLに設定します。

構文

void setNull();

13.15.27 toText()

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

構文

string toText(
   unsigned int lfprec,
   unsigned int fsprec,
   const string &nlsParam = "") const;
パラメータ 説明
lfprec

先行フィールド精度を指定します。

fsprec

小数秒の精度を指定します。

nlsParam

NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。

13.15.28 toUText()

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

構文

UString toUText(
   unsigned int lfprec,
   unsigned int fsprec) cosnt;
パラメータ 説明
lfprec

先行フィールド精度を指定します。

fsprec

小数秒の精度を指定します。