1、DateTime,Date,Time存儲方式本質上也是以double來存儲的。用整數部分表示日期,小數部分表示時間。可看我另一篇「access 中「日期/時間」存儲方式 」html
TDateTimePicker有上面三種屬性。函數
2、TDateTimePicker的kind屬性設置爲dtkDate用於顯示日期,第二個kind設置爲dtkTime用於顯示時間,可是不能同時顯示的。ui
3、用DateTimePicker.Date和Time的值要注意:取Date要用trunc取整獲得,取Time要用frac取小數獲得。.net
4、DateTimePicker的Date,Time,DateTime三者是相等的。unix
下面這個例子看一下:orm
新建一個工程放入一個TDateTimePicker、兩個TEdit、兩個按鈕,並設置兩個按鈕的事件代碼以下htm
{DateTimePicker1的日期和時間設置爲:2010-03-26 13:00:00}
procedure TForm1.Button1Click(Sender: TObject); //取出Date部分,並判斷它的值
var
t:TDateTime;blog
begin
t:= DateTimePicker1.Date;事件
Edit1.Text:=DateTimeToStr(t);
end;get
procedure TForm1.Button2Click(Sender: TObject); //判斷取Date和DateTime是否相等
begin
if DateTimePicker1.Time = DateTimePicker1.DateTime then
begin
Edit2.Text:='相等'
end
else
begin
Edit2.Text:='不相等';
end;
end;
能夠看到雖然咱們的代碼中只取了Date或是Time,可是它們的值和DateTime的值是相等的。
因此若是你用以下代碼
{DateTimePicker1的日期和時間設置爲:2010-03-26 13:00:00}
procedure TForm1.Button1Click(Sender: TObject); //取出Date部分,並判斷它的值
var
t:TDateTime;
begin
t:= DateTimePicker1.Date + DateTimePicker1.Time;
//t:= trunc(DateTimePicker1.Date)+frac(DateTimePicker1.Time);//這纔是等到DateTimePicker1的日期和時間
Edit1.Text:=DateTimeToStr(t);
end;
結果是:2120-6-21 2:00:00
至關因而把DateTimePicker1的時間和日期乘以2了,並非說DateTimerPicker的Date+Time就和DateTime相等。
而用 trunc取整數部分 加上 frac取小數部分 函數,二者取出來的和就會和原來相等。
參考:
http://ifso.iteye.com/blog/1752420