C# 计算时间间隔的方法

9 篇文章 0 订阅
8 篇文章 0 订阅

一、计算两个DateTime的时间间隔,有两种方法

1、两个DateTime直接相减,得到一个TimeSpan,表示两个时间的间隔

2、用DateTime.Subtract(DateTime) 方法进行计算,其结果与方法1相同,表示用当前时间减去参数所代入的时间,返回一个TimeSpan 

 

二、TimeSpan结构表示一个时间间隔,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。

TimeSpan对象的文本(.tostring())“11.13:46:40”,表示 11 天,13 小时,46 分钟和 40 秒。

TimeSpan.TotalSeconds 属性:获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值,可为负数。即将天、小时、分、秒转化为秒来显示。

TimeSpan的Days、Hours、minutes、seconds属性:分别用于获取时间间隔的天、小时、分、秒。 

 

下面是一个实例:

          

 
#region 计算时间

	   int intDays = 0;
           int intHours = 0;
           int intminutes = 0;
           int intseconds = 0;
           DateTime dTKaiTaiShiJian = new DateTime();
           DateTime dTJieZhangShiJian = new DateTime();
           TimeSpan tsShiJianJianGe = new TimeSpan();            
            dTKaiTaiShiJian =Convert.ToDateTime(dtDianDanXinXi.Rows[0][41].ToString().Trim());
            string strYear = DateTime.Now.Year.ToString();
            string strMonth = DateTime.Now.Month.ToString();
            string strDay = DateTime.Now.Day.ToString();
            string strRiQi = "";
            strMonth = (strMonth.Length == 1 ? "0" + strMonth : strMonth);
            strDay = (strDay.Length == 1 ? "0" + strDay : strDay);
            strRiQi = strYear + "-" + strMonth + "-" + strDay;
            string strHour = DateTime.Now.Hour.ToString();
            string strMinute = DateTime.Now.Minute.ToString();
            string strSecond = DateTime.Now.Second.ToString();
            strHour = (strHour.Length == 1 ? "0" + strHour : strHour);
            strMinute = (strMinute.Length == 1 ? "0" + strMinute : strMinute);
            strSecond = (strSecond.Length == 1 ? "0" + strSecond : strSecond);
            dTJieZhangShiJian = Convert.ToDateTime(strRiQi + " " + strHour + ":" + strMinute + ":" + strSecond);
            //tsShiJianJianGe = (dTJieZhangShiJian - dTKaiTaiShiJian);方法 一
            tsShiJianJianGe = dTJieZhangShiJian.Subtract(dTKaiTaiShiJian);//方法 二
            intDays = tsShiJianJianGe.Days;
            intHours = tsShiJianJianGe.Hours;
            intminutes = tsShiJianJianGe.Minutes;
            intseconds = tsShiJianJianGe.Seconds;
            string strShiJianJianGe = ((intDays * 24) + intHours).ToString() + "小时" + intminutes.ToString() + "分钟" + intseconds.                                      ToString() + "秒";
            txt_XiaoFeiShiJian.Text = dTKaiTaiShiJian + " - " + dTJieZhangShiJian + " 时长:" + strShiJianJianGe;
            #endregion




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值