德尔福 - 为什么TDate和TDateTime一样?

时间:2012-08-29 08:56:05

标签: delphi tdatetime

在查看System.pas时,TDate和TDateTime定义如下:

  TDateTime = type Double;

  TDate = type TDateTime;
  TTime = type TDateTime;

显然TDate和TDateTime是一样的。

我只是努力与TDate和TDateTime合作,因为我预计TDate只包含日期部分,而不是时间部分。

现在我想知道:这背后的意义是什么? 当我将变量声明为TDate时,它应该包含日期,而不是dat和时间值。

1 个答案:

答案 0 :(得分:8)

他们不一样。如果声明是

TDate = TDateTime;
TTime = TDateTime;

他们已经相同。使用额外的type,虽然它们在技术上仍然相同,即它们仍然是double,但它们可以分开讲述。例如,这可以在Object Inspector中为两种类型(分别是日期选择器和时间选择器)使用不同的属性编辑器,而您可以使用TDateTime的“日期时间”选择器

此外,即使不是这样,也可以将不同的“别名”用于不同目的。这可能会使您的源代码更容易理解。例如,如果你这样做

var
  StartTime: TDate;

然后您知道StartTime仅包含有关日期的信息,而不包含时间(除非您滥用规范)。