使用linq求和时间间隔

本文关键字:时间 求和 linq 使用 | 更新日期: 2023-09-27 18:27:13

我有问题;事实上,我的数据库表中有HH.mm格式的workingHours,我想使用LINQ求所有工作时间的总和。请告诉我如何做到这一点。

在totalWeekHours中,我有所有的工作时间,我已经用HH:mm替换了HH.mm格式,但我不知道如何使用Linq在timespanSum()中解析它。

请帮忙。

var totalWeekHours = (from twh in db.MytimeMaster 
                      where ((twh.date >= lstsun && twh.date <= tilldate) 
                          && (twh.agentID == agentid)) 
                      select twh.totalworkinghours).ToList();
if (totalWeekHours.Count > 0) 
{
    List cnvrtToTimespanlist = new List(); 
    foreach(var list in totalWeekHours) 
    {
        cnvrtToTimespanlist.Add(list.ToString().Replace('.', ':')); 
    }
}

使用linq求和时间间隔

您可以使用Aggregate方法。

var sum = (from twh in db.MytimeMaster
 where ((twh.date >= lstsun && twh.date <= tilldate) && (twh.agentID == agentid))
 select twh.totalworkinghours).Aggregate(TimeSpan.FromMinutes(0), (total, next) => total + next);

p.s.假设时间间隔使用TimeSpan。