COleDateTime::GetStatus

更新 : 2007 年 11 月

指定した COleDateTime オブジェクトの状態 (有効性) を取得します。

DateTimeStatus GetStatus( ) const throw( );

戻り値

この COleDateTime 値の状態を返します。既定の設定で構築した COleDateTime オブジェクトに対して GetStatus を呼び出すと、有効が返されます。コンストラクタを null に設定して初期化した COleDateTime に対して GetStatus を呼び出すと、null が返されます。詳細については、「解説」を参照してください。

解説

戻り値は、COleDateTime クラス内に定義されている DateTimeStatus 列挙型により定義されます。

enum DateTimeStatus

{

error = -1,

valid = 0,

invalid = 1, // Invalid date (out of range, etc.)

null = 2, // Literally has no value

};

状態値の簡単な説明は、次の一覧を参照してください。

  • COleDateTime::error   日付/時刻値の一部を取得しようとしたときにエラーが発生したことを示します。

  • COleDateTime::valid   この COleDateTime オブジェクトが有効であることを示します。

  • COleDateTime::invalid   この COleDateTime オブジェクトが無効、つまりその値が不正である可能性を示します。

  • COleDateTime::null   この COleDateTime オブジェクトが null、つまりこのオブジェクトに値が設定されていないことを示します。これは、C++ の NULL とは異なり、"値を持たない" というデータベース用語での "null" です。

次の場合 COleDateTime オブジェクトの状態は無効になります。

  • その値が、日付/時刻値に変換できない VARIANT 値、または COleVariant 値から設定された場合。

  • その値が、有効な日付/時刻値に変換できない time_t 値、SYSTEMTIME 値、または FILETIME 値から設定された場合。

  • その値が、無効なパラメータ値を持つ SetDateTime から設定された場合。

  • このオブジェクトが += または -= のような代入演算中にオーバーフロー、またはアンダーフローとなった場合。

  • このオブジェクトに無効な値が代入された場合。

  • このオブジェクトの状態が、SetStatus を使用して明示的に無効に設定された場合。

状態が無効に設定される可能性のある操作については、次のメンバ関数を参照してください。

COleDateTime 値の範囲の詳細については、「日付と時刻 : オートメーションのサポート」を参照してください。

使用例

COleDateTime t;

// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);

// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);

// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);   

必要条件

ヘッダー : atlcomtime.h

参照

参照

COleDateTime クラス

階層図

COleDateTime::SetStatus

COleDateTime::m_status

その他の技術情報

COleDateTime のメンバ