TDateTimePicker 和日期
TDateTimePicker and Date
这是一个关于 Delphi XE7 的 DatetTimePicker 的奇怪问题的简单问题。
我有这个代码...
procedure TForm1.Button1Click(Sender: TObject);
begin
DateTimePicker1.Date:= Date;
memo1.Lines.Add(FloatToStr(Date) + ' vs ' + FloatToStr(DateTimePicker1.Date));
end;
今天,2015 年 3 月 18 日,按下按钮后,我得到的结果是:
42081 vs 42081.846316956
如果我在 5 分钟后再次按下,我会得到相同的结果。
为什么值不一样?
将 Datepicker1.Time 设置为 0,您将得到相同的结果。
这是您在小数点中看到的白天的分数。
-
TDateTimePicker.Date
和 TDateTimePicker.Time
属性 吸气剂 return 都是完整的 date/time 值,尽管它们的名字不同。另一方面,属性 setter 仅按预期分别更新日期和时间部分。
Date()
函数 return 是一个 TDateTime
,它只包含日期部分,没有时间部分。
要单独检索日期部分,您可以使用 DateUtils
单元中的 DateOf()
函数去除由 return 编辑的值的时间部分=11=] 或 TDateTimePicker.DateTime
属性:
DateOf(DateTimePicker1.Date)
Date()
函数截断 return 值的小数部分(将时间部分设置为 0)。所以它 return 是当前的 date/time,只填写了日期。
TDateTimePicker.Date
属性setter只更新内部存储的日期部分TDateTime
,保持现有时间不变。 TDateTimePicker.Date
属性 getter return 是整个内部存储的 date/time,而不是人们所期望的日期本身。因此,您看到的是 TDateTimePicker
.
初始化的更新日期 + 原始时间
这是一个关于 Delphi XE7 的 DatetTimePicker 的奇怪问题的简单问题。
我有这个代码...
procedure TForm1.Button1Click(Sender: TObject);
begin
DateTimePicker1.Date:= Date;
memo1.Lines.Add(FloatToStr(Date) + ' vs ' + FloatToStr(DateTimePicker1.Date));
end;
今天,2015 年 3 月 18 日,按下按钮后,我得到的结果是:
42081 vs 42081.846316956
如果我在 5 分钟后再次按下,我会得到相同的结果。 为什么值不一样?
将 Datepicker1.Time 设置为 0,您将得到相同的结果。 这是您在小数点中看到的白天的分数。
-
TDateTimePicker.Date
和TDateTimePicker.Time
属性 吸气剂 return 都是完整的 date/time 值,尽管它们的名字不同。另一方面,属性 setter 仅按预期分别更新日期和时间部分。 Date()
函数 return 是一个TDateTime
,它只包含日期部分,没有时间部分。
要单独检索日期部分,您可以使用 DateUtils
单元中的 DateOf()
函数去除由 return 编辑的值的时间部分=11=] 或 TDateTimePicker.DateTime
属性:
DateOf(DateTimePicker1.Date)
Date()
函数截断 return 值的小数部分(将时间部分设置为 0)。所以它 return 是当前的 date/time,只填写了日期。
TDateTimePicker.Date
属性setter只更新内部存储的日期部分TDateTime
,保持现有时间不变。 TDateTimePicker.Date
属性 getter return 是整个内部存储的 date/time,而不是人们所期望的日期本身。因此,您看到的是 TDateTimePicker
.