我有进出时间的日志。我想在日志中有一列是一次登录的总时间,旁边是该人在整个日志中的总登录时间。
我一直在使用 TimeSpan 对象获得第一个持续时间,但是在我翻阅结果集的同时不断累加总时间让我难以理解:
// Set duration of this visit
timeInRoom = -(ieLog.Ingresstime - ieLog.Egresstime);
我试过使用另一个 TimeSpan 变量来保存上一次迭代的值,并将 timeInRoom 添加到该变量中,这样我就可以进行计数,但这似乎不起作用。
我猜我的做法是错误的。有任何想法吗?时间是结果集中的 DateTime 值。
谢谢。
最佳答案
像这样的东西应该可以工作:
var timeInRoom = new TimeSpan();
foreach(var log in logs)
{
timeInRoom += log.Egresstime - log.IngressTime;
}
或者,如果您是 LINQ 的粉丝:
logs.Aggregate(new TimeSpan(),
(ts, log) => ts + (log.Egresstime - log.IngressTime));
关于C# DateTime TimeSpan 持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107474/