时间差计算
一、在C#后台中计算两个时间差
DateTime dt1 = new DateTime(2004,03,26,13,31,40);
DateTime dt2 = new DateTime(2004,03,26,18,39,30);
string dt = DateDiff(dt1, dt2);
//计算时间的方法
public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
return dateDiff;
#region note
//C#中使用TimeSpan计算两个时间的差值
//可以反加两个日期之间任何一个时间单位。
//TimeSpan ts = Date1 - Date2;
//double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5
//int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1
#endregion
}
二、在sql中计算时间差
使用DATEDIFF方法计算两个时间差,该方法有三个参数,第一个是计算出结果的时间类型,第二个是起始时间,第三个是结束时间。
datepart | 缩写 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小时 | hh |
分钟 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
纳秒 | ns |
通过该表填写第一个参数,计算出时间差,然后转换成想要的结果。
例:
select DATEDIFF(MI,'2016-08-20 13:13:20','2016-08-20 15:14:20')--计算出两个时间相差的分钟。(121分钟)
select 121 / 60 ,121-(121 / 60*60)--根据时间分钟算出小时(2小时1分钟)