您的位置:首页 > 编程语言 > C#

C# 计算时间间隔的方法

2013-11-18 11:28 501 查看
一、计算两个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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息