System.TDateTime
Delphi
type TDateTime = { built-in type };
C++
class RTL_DELPHIRETURN TDateTime : public TDateTimeBase
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
type class |
public | System.pas systdate.h |
System | System |
説明
TDateTime は、Delphi の TDateTime 型に相当する C++ の型です。
TDateTime は、Delphi の 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);