System.TDateTime

提供: Appmethod Libraries
移動先: 案内検索

Object Pascal

type TDateTime = { built-in type };

C++

class RTL_DELPHIRETURN TDateTime : public TDateTimeBase

プロパティ

種類 可視性 ソース ユニット
type
class
public
System.pas
systdate.h
System System


説明

TDateTime は、Object Pascal の TDateTime 型に相当する C++ の型です。


TDateTime は、Object Pascal の TDateTime データ型と、TDateTime データ型を使用する日付/時刻関連のランタイム ライブラリ ルーチンを実装したものです。

TDateTime クラスは、日時値を保有する val データ メンバ(double 値として宣言される)を継承します。TDateTime 値の整数部分は、1899年12月30日からの経過日数です。TDateTime 値の小数部分は、その日の時刻です。TDateTime 値でサポートされている正しい日時の上限は 12/31/9999 23:59:59:999 です。 値がこの日時を上回ると必ず、TDateTime 値を操作する大半のルーチンでエラーや例外が発生します。


TDateTime では、負の値もサポートしています。 負の値の範囲は正の値の範囲にちょうど対応しています。 そのため、Now の値(正)はその負の値 -Now とまったく同じです。 負の TDateTime 値は慎重に使用しなければなりません。 負の値を誤って使用すると、さまざまな問題を引き起こすおそれがあります。

TDateTime 値とそれに対応する日時の例を以下の表に示します。

説明
0 1899 年 12 月 30 日午前 12:00
2.75 1900 年 1 月 1 日午後 6:00
-1.25 1899 年 12 月 29 日午前 6:00
35065 1996 年 1 月 1 日午前 12:00

2 つの日付の間の日数の小数部分を求めるには、TDateTime 値のどちらも負の値でなければ 2 つの値を単に減算します。 同様に、小数で表される日数分だけ日付/時刻値を増やすには、TDateTime 値が正であれば、その小数を日付/時刻値に加算します。

負の TDateTime 値を扱う場合は、時刻部分を別個に処理する必要があります。 小数部分は、TDateTime 値の符号とは無関係に 1 日 24 時間の一部分を表します。 たとえば、1899 年 12 月 29 日の午前 6:00 は -1 + 0.25(-0.75)ではなく -1.25 です。 -1 と 0 の間の TDateTime 値は存在しません。

メモ: TDateTime で宣言されている演算子のみ使用してください。 コンパイラでは、ユーザーが独自にオーバーロードした演算子をすべて無視します。

警告: TDateTime を継承のための基底クラスとして使用することはできません。 TDateTime に機能を追加するには、ラッパー クラスを作成する必要があります。

メモ: C++ ストリーミング演算子(<< および >>)を Currency に対して使用するには、iostream ライブラリを systdate ライブラリの前に、インクルードしなければなりません。 以下のストリーム演算子が定義されています:

ostream& operator << (ostream& os, const TDateTime& arg);
istream& operator >> (istream& is, TDateTime& arg);

関連項目