delphi 7.0 DateTimePicker控件相同日期比较的问题

delphi 7.0  DateTimePicker控件相同日期比较的问题
2011-03-19         作者:李海彬   阅读:547

        DateTimePicker控件作为日期时间控件,在DELPHI中使用得很广泛的,它根据KIND属性可设置为日期控件(dtkDate)或时间控件(dtkTime),我一直认为,将它设置为日期控件时,与时间是无关的,可是在实际应用中,发现并不是这样。
    比如下面的这一个程序,两个 DateTimePicker分别用于设置查询数据的起始日期和终于日期,要执行查询时,要求起始日期不能大于终止日期,否则弹出错误提示,可是在两个 DateTimePicker设置的日期相同时,按下[查询]按钮后,却发现也提示错误了。

                       
   代码如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
  //如果起始日期>终于日期,提示错误:
  if datetimepicker1.date>datetimepicker2.Date then
         Messagebox(handle,'查询起始日期不能大于终于日期','错误',MB_OK);
end;

从上面的代码我们可以看到,用于比较的是datetimepicker.DATE,即一个日期型的数值,而大家也可以看到,日期是相同的,可是在程序执行时,得到的结果是datetimepicker1.date大于datetimepicker2.Date。
    经检查,发现datetimepicker1.Time=20:10:23,datetimepicker2.Time=17:20:21,即两个的Time值是不同的,而且datetimepicker1.Time大于datetimepicker2.Time,是这个原因吗?试着将这两个时间都设成00:00:00,再运行同样的代码,发现不再提示错误。
    结论:datetimepicker.date在进行日期比较时,并不是仅仅比较日期,而对时间也进行比较,这是一个很令人难以理解的结果,但事实如此。

转载于:https://www.cnblogs.com/hssbsw/archive/2012/06/03/2533074.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值