如何优雅的给TDatetimePicker控件赋值?Delphi

给DatetimePicker赋值时,可以通过界面设置赋值,也可以通过代码赋值。

通常,我们会给表示起始时间的dtp赋值为 00:00:00,给表示结束时间的dtp赋值为23:59:59。

代码如下:

dtp1.time:=strtodatetime('00:00:00');

dtp2.time:=strtodatetime('23:59:59');

但这种方式有硬编码的嫌疑,而且在对表示日期的datetimepicker赋值时,因为strtodatetime函数在winxp和win7下默认的时间格式不同,可能引发异常。

那么有没有一种比较好的方式来赋值呢。当然是有的。

以给 kind=dtkTime 的 datetimePicker 赋值为例,代码如下。(需引用DateUtiles单元)

dtp1.Time:= StartOfTheDay(Now);

dtp2.Time:=EndOfTheDay(Now);

给日期类型的DatetimePicker赋值也是一样的,利用startofamonth,endofamonth等函数即可。