2013-08-12 2 views
0

У меня проблема; на самом деле у меня есть рабочий час в моей таблице базы данных в формате HH.mm, и я хочу суммировать все рабочие часы с помощью LINQ, может ли кто-нибудь 1 рассказать, как это сделать.Суммы временных интервалов с использованием linq

В целомWeekHours У меня есть все рабочее время, и я заменяю формат HH.mm в HH: mm, но я не знаю, как его разобрать в timespan, а затем Sum() с использованием Linq.

помогите пожалуйста.

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('.', ':')); 
    } 
} 
+3

Пожалуйста, отформатируйте свой код более полезно ... и почему ваши данные базы данных в текстовой форме в любом случае? Можете ли вы каким-то образом изменить это? (Например, числовое значение «рабочих минут» будет в порядке.) –

+2

«может любой 1» ... пожалуйста. Я понимаю, что английский язык не является первым языком для многих людей в Stack Overflow, но это не повод для использования текстового сленга. – Tim

+0

@ Тит, это уже изменилось. – Default

ответ

0

Вы можете использовать метод 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 для временных интервалов.

Смежные вопросы