2-14 DataTimePicker控件

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,如需转载请自行联系原作者

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值