winform程序中有关时间差的计算

winform程序中有关时间差的计算

将第一个得到的时间进行保存,然后得到第二个时间,将两者都转换为秒数,做差,然后将秒数转换为时间

  • 将得到的时间保存在静态类中
 /// <summary>
        /// 将当前的事件字符串赋值给静态类中的属性
        /// </summary>
        public void getTime()
        {
            string hourString = DateTime.Now.Hour.ToString();
            string minuteString = DateTime.Now.Minute.ToString();
            string secondString = DateTime.Now.Second.ToString();
            DateClass.Hour = hourString;
            DateClass.Minute = minuteString;
            DateClass.Second = secondString;
        }
  • 将获取的事件转换为秒,再与之前的事件秒数做差得到int再将int转换为时间
/// <summary>
       /// 方法1:将获取的事件转换为秒,再与之前的事件秒数做差得到int再将int转换为时间
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)
        {
            //每一秒执行这个显示时间
            label1.Text = DateTime.Now.ToString();
            //提示到时间了
            if (DateTime.Now.Hour - Convert.ToInt32(DateClass.Hour) == 2 && DateTime.Now.Minute - Convert.ToInt32(DateClass.Minute) == 0 && DateTime.Now.Second - Convert.ToInt32(DateClass.Second) == 0)
            {
                MessageBox.Show("程序虽好,但也要休息!");
                label2.Text="";
                DateClass.Hour = null;
                DateClass.Minute = null;
                DateClass.Second = null;
                getTime();
            }
            else
            {
                int hour = Convert.ToInt32(DateTime.Now.Hour);
                int minute = Convert.ToInt32(DateTime.Now.Minute);
                int second = Convert.ToInt32(DateTime.Now.Second);
                string time = hour+":"+minute+":"+second;
                DateTime dt = Convert.ToDateTime(time);
                int timeNowAll = ((dt.Hour) * 3600) + ((dt.Minute) * 60) + (dt.Second);

                int hourB = Convert.ToInt32(DateClass.Hour);
                int minuteB = Convert.ToInt32(DateClass.Minute);
                int secondB = Convert.ToInt32(DateClass.Second);
                string timeB = hourB + ":" + minuteB + ":" + secondB;
                DateTime dtB = Convert.ToDateTime(timeB);
                int timeAllB = ((dtB.Hour) * 3600) + ((dtB.Minute) * 60) + (dtB.Second);

                int timeSub = timeNowAll - timeAllB;

                TimeSpan ts = new TimeSpan(0, 0, timeSub);
                label2.Text = "距离上次休息时间为"+(int)ts.TotalHours + "小时" + ts.Minutes + "分钟" + ts.Seconds + "秒";
            }
        }
  • 静态类DateClass
public static class DateClass
    {
        public static string Hour { get; set; }
        public static string Minute { get; set; }
        public static string Second { get; set; }
    }

以上是最简单的有关于时间求差转时间方法,稍后再改进算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值