Я немного борюсь с расчетом, который мне нужно делать в каждой строке в представлении данных. Я хочу просмотреть все строки в datagridview, который имеет два столбца с датой и временем. Один представляет LogInTime, а другой представляет LogOutTime. Я хотел бы получить общее количество часов и минут между всеми входами в систему и выходом из системы для строк, отображаемых в datagridview. Любые предложения о том, как это реализовать?
Рассчитать общее количество часов, используя столбцы DateTime в DataGridView
Ответы (2)
К чему привязан ваш DataGridView? Подобные вычисления было бы проще выполнить в коде с использованием выражения Linq или вызова DataTable.Compute().
Пример выражения Linq:
var minutes = listOfLogins.Sum(l => l.LogOutTime.Subtract(l.LoginTime).TotalMinutes);
Console.WriteLine("{0}h, {1}m", (int)(minutes / 60), minutes % 60);
person
Matt Hamilton
schedule
17.04.2009
Он привязан к DataTable. Linq, к сожалению, здесь не подходит из-за спецификации проекта. Я думаю, у вас есть хорошее предложение, и я попытаюсь изменить наш код и посмотреть, как он работает. Спасибо!
- person Henric; 17.04.2009
Прохладный. В худшем случае вы можете просмотреть DataTable в цикле, но может оказаться возможным сложить различия DateTime в одном вызове метода Compute(SUM(...)) . Я не думаю, что datediff() поддерживается, но стоит попробовать.
- person Matt Hamilton; 17.04.2009
Вы можете вычесть одну дату из другой, чтобы получить блок TimeSpan, который даст вам необходимые данные.
Вам нужно будет рассчитать это в исходных данных или в событии привязки данных строки, которое вы можете получить и выполнить расчет.
person
cjk
schedule
17.04.2009