delphi TDateTimePicker怎么用

delphiTDateTimePicker怎么用... delphi TDateTimePicker怎么用 展开
 我来答
精品DIY生活
2015-08-12 · 知道合伙人数码行家
精品DIY生活
知道合伙人数码行家
采纳数:46447 获赞数:131767
视频剪辑、网络管理、图片处理、办公自动化、文学、语言学。

向TA提问 私信TA
展开全部
delphi TDate,Time存储方式本质上也是以double来存储的。用整数部分表示日期,小数部分表示时间。TDateTimePicker有上面三种属性。
二、
delphi 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取小数部分 函数,两者取出来的和就会和原来相等。
百度网友09d4ae1
2011-02-14 · TA获得超过267个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:200万
展开全部
TDateTimePicker 是可视化控件,你直接拖到Form里,就可以用了。

var
mytime : TDatetime;
begin
mytime := DateTimePicker1.DateTime;
edit1.Text := DateTimeToStr(mytime);
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b5b0918
2011-02-15
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
win32下的控件,把需要的日期赋值给它就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友96ffcf7
2015-06-29 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118715
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
给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等函数即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式