System.TDateTime

提供: RAD Studio API Documentation
移動先: 案内検索

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 は、負の値もサポートしています。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 値が正であれば、その小数を日付/時刻値に加算します。

DateUtils ユニットには複数の API(DaysBetweenHoursBetweenWeeksBetween、など)があり、2 つの TDateTime の間の時間を計算するにはより適しています。これらの API は、基とする double の正負にかかわらず機能します。

負の TDateTime 値を扱う場合は、時刻部分を別個に処理する必要があります。 小数部分は、TDateTime 値の符号とは無関係に 1 日 24 時間の一部分を表します。 たとえば、1899 年 12 月 29 日の午前 6:00 は -1 + 0.25(-0.75)ではなく -1.25 です。 -1.0 より大きく 0.0 までの日付は、1.0 より小さく 0.0 までの日付と、お互い鏡対称となります。これは、+ve zero と -ve zero が等しいためです。

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

以下のストリーム演算子が定義されています。

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

関連項目