2-14 DataTimePicker控件
u
本节学习目标:
n
了解DataTimePicker控件的属性
n
学习DataTimePicker控件如何显示时间之差
2-14-1
简介
如果希望应用程序能够使用户可以选择日期和时间,并以指定的格式显示该日期和时间,可以使用
DataTimePicker
控件。
DataTimePicker
控件用于选择日期和时间,与
Monthcalendar
控件不同,
DataTimePicker
控件只能够选择一个时间段。一个基本的
DataTimePicker
控件如图
2-44
所示:
图2-44 DataTimePicker控件实验布局
2-14-2
DataTimePicker控件的属性
DataTimePicker
控件主要的属性如表
2-14
所示:
属性
|
说明
|
showcheckbox
|
是否在控件中显示复选框,当复选框为选中时候,表示未选择任何值。
|
checked
|
当showcheckbox 为TRUE时候,确定是否选择复选框。
|
showupdown
|
改为数字显示框,不再显示月历表。
|
value
|
当前的日期(年月日时分秒)
|
表2-14 DataTimePicker控件的属性
2-14-3
DataTimePicker控件实践操作
1.
案例学习:DataTimePicker控件显示时间之差
(
1
)从工具箱之中拖放两个
DataTimePicker
控件,若干
Label
标签,如图
2-45
所示进行布局。
图2-45 DataTimePicker控件实验布局
(
2
)具体功能的实现见下面的编码部分:
///
<summary>
/// 初始化事件时候,分别显示选择日期的日期和周以及时间差信息
/// </summary>
private void Form008_Load(object sender, EventArgs e)
{
label3.Text = "选择日期是本年度第" + dateTimePicker1.Value.DayOfYear.ToString() +"天";
//学习如何从dateTimePicker控件内获取选择天为一年的第几天。
label4.Text = "选择日期是本周" + dateTimePicker1.Value.DayOfWeek.ToString();
//学习如何从dateTimePicker控件内获取选择天为一年的第几周。
label5.Text = "两个日期之差是:" + Convert.ToString(dateTimePicker2.Value.DayOfYear - dateTimePicker1.Value.DayOfYear) + "天";
//求两个选择的日期之差
}
///
<summary>
/// 当dateTimePicker1的时间发生变化时候,执行下面代码
/// </summary>
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
label5.Text = "两个日期之差是:" + Convert.ToString(dateTimePicker2.Value.DayOfYear - dateTimePicker1.Value.DayOfYear) + "天"; //求两个选择的日期之差
}
/// <summary>
/// 当dateTimePicker2的时间发生变化时候,执行下面代码
/// </summary>
private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
{
label5.Text = "两个日期之差是:" + Convert.ToString(dateTimePicker2.Value.DayOfYear - dateTimePicker1.Value.DayOfYear) + "天"; //求两个选择的日期之差
}
|
(
3
)代码排错。
如果选择的日期都是同一年的不同两天,则通过求某天是一年的第几天,然后求差的方式是可以争取计算出两个日期之差的。但是如果第一天日期为
2009
年
1
月
1
日
,另一天为
2008
年
12
月
31
日
的话,我们知道其日期差为
1
天,但是通过我们的程序计算就会得出
365
天的错误值。更正代码如下:
private
void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
DateTime d1 = dateTimePicker1.Value;
DateTime d2 = dateTimePicker2.Value;
TimeSpan d3 = d2.Subtract(d1);
//注意:TimeSpan类型表示一个时间间隔类型,Subtract方法可以求出两个事件准确的日期差。
label5.Text = "两个日期之差是:" + Convert.ToString(d3.TotalDays) + "天";
}
private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
{
DateTime d1 = dateTimePicker1.Value;
DateTime d2 = dateTimePicker2.Value;
TimeSpan d3 = d2.Subtract(d1);
//注意:TimeSpan类型表示一个时间间隔类型,Subtract方法可以求出两个事件准确的日期差。
label5.Text = "两个日期之差是:" + Convert.ToString(d3.TotalDays) + "天";
}
|
本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/208680,如需转载请自行联系原作者