Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1739464
  • 博文数量: 263
  • 博客积分: 1218
  • 博客等级: 少尉
  • 技术积分: 2862
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-19 02:33
文章分类

全部博文(263)

文章存档

2020年(12)

2019年(2)

2018年(10)

2016年(1)

2015年(20)

2014年(115)

2013年(46)

2012年(37)

2011年(20)

分类: WINDOWS

2012-03-26 15:26:40

一、DateTime,Date,Time存储方式本质上也是以double来存储的。用部分表示日期,小数部分表示时间。可看我另外一篇“access 中“日期/时间”存储方式

TDateTimePicker有上面三种属性。

二、TDateTimePicker的kind属性设置为dtkDate用于显示日期,第二个kind设置为dtkTime用于显示时间,但是不能同时显示的。

三、用DateTimePicker.Date和Time的值要注意:取Date要用trunc取整得到,取Time要用frac取小数得到。

四、DateTimePicker的Date,Time,DateTime三者是相等的。

下面这个例子看一下:

新建一个工程放入一个TDateTimePicker、两个TEdit、两个按钮,并设置两个按钮的事件代码如下

{DateTimePicker1的日期和时间设置为:2010-03-26 13:00:00}
procedure TForm1.Button1Click(Sender: TObject);  //取出Date部分,并判断它的值
var
  t:TDateTime;

begin
  t:= DateTimePicker1.Date;

  Edit1.Text:=DateTimeToStr(t);
end;


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取小数部分 函数,两者取出来的和就会和原来相等。

参考:  

阅读(5908) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~