在查看System.pas时,TDate和TDateTime定义如下:
TDateTime = type Double;
TDate = type TDateTime;
TTime = type TDateTime;
显然TDate和TDateTime是一样的。
我只是努力与TDate和TDateTime合作,因为我预计TDate只包含日期部分,而不是时间部分。
现在我想知道:这背后的意义是什么? 当我将变量声明为TDate时,它应该包含日期,而不是dat和时间值。
答案 0 :(得分:8)
他们不一样。如果声明是
TDate = TDateTime;
TTime = TDateTime;
他们已经相同。使用额外的type
,虽然它们在技术上仍然相同,即它们仍然是double
,但它们可以分开讲述。例如,这可以在Object Inspector中为两种类型(分别是日期选择器和时间选择器)使用不同的属性编辑器,而您可以使用TDateTime
的“日期时间”选择器
此外,即使不是这样,也可以将不同的“别名”用于不同目的。这可能会使您的源代码更容易理解。例如,如果你这样做
var
StartTime: TDate;
然后您知道StartTime
仅包含有关日期的信息,而不包含时间(除非您滥用规范)。