直接上代码:)code
var acc= entities.AccountLoginInfoes.Where(r => r.AccountID == item.DevID&&r.AccountType==0).ToList(); TimeSpan time = new TimeSpan(); string dateDiff = null; foreach (var i in acc) { if (!string.IsNullOrWhiteSpace(i.LoginTime)&&!string.IsNullOrWhiteSpace(i.LogoutTime))//LoginTime登录时间 LogoutTime登出时间 { var in1 = Convert.ToDateTime(i.LogoutTime); var out1 = Convert.ToDateTime(i.LoginTime); time += in1 - out1; TimeSpan ts1 = new TimeSpan(in1.Ticks); TimeSpan ts2 = new TimeSpan(out1.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration(); string days = ts.Days.ToString(), hours = ts.Hours.ToString(), minutes = ts.Minutes.ToString(), seconds = ts.Seconds.ToString(); if (ts.Days < 10) { days = "0" + ts.Days.ToString(); } if(ts.Hours<10) { hours = "0" + ts.Hours.ToString(); } if (ts.Minutes<10) { minutes = "0" + ts.Minutes.ToString(); } if(ts.Seconds<10) { seconds = "0" + ts.Seconds.ToString(); } dateDiff = days + "天" + hours + "时" + minutes + "分" + seconds + "秒"; } }
最后的显示效果blog
补充:string
TimeSpan 结构 表示一个时间间隔。it
命名空间:System 程序集:mscorlib(在 mscorlib.dll 中)io
说明: 1.DateTime值类型表明了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。所以,你能够用DateTime值类型来描述任何在想象范围以内的时间。TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值,class
其中的五个重载方法之一的结构 TimeSpan( int days, int hours, int minutes, int seconds )date
下面的列表涵盖了其中的一部分方法及属性解释foreach
Add:与另外一个TimeSpan值相加。List
Days:返回用天数计算的TimeSpan值。命名空间
Duration:获取TimeSpan的绝对值。
Hours:返回用小时计算的TimeSpan值
Milliseconds:返回用毫秒计算的TimeSpan值。
Minutes:返回用分钟计算的TimeSpan值。
Negate:返回当前实例的相反数。
Seconds:返回用秒计算的TimeSpan值。
Subtract:从中减去另外一个TimeSpan值。
Ticks:返回TimeSpan值的tick数。
TotalDays:返回TimeSpan值表示的天数。
TotalHours:返回TimeSpan值表示的小时数。
TotalMilliseconds:返回TimeSpan值表示的毫秒数。
TotalMinutes:返回TimeSpan值表示的分钟数。
TotalSeconds:返回TimeSpan值表示的秒数。