2009-04-17 5 views
1

Я немного борюсь с расчетом, который мне нужно сделать для каждой строки в datagridview. Я хочу, чтобы пройти через все строки в datagridview, который имеет два столбца с datetimes. Один из них представляет LogInTime, а другой - LogOutTime. Я хотел бы получить общее количество часов и минут между всеми временем входа и временем выхода для строк, отображаемых в datagridview. Любые предложения о том, как это реализовать?Рассчитать общее количество часов, используя столбцы DateTime в DataGridView

ответ

1

К чему относится ваш 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); 
+0

Он привязан к DataTable. Linq, к сожалению, здесь не вариант из-за спецификации проекта. Я думаю, у вас есть хорошее предложение, и я попытаюсь изменить наш код и посмотреть, как он работает. Благодаря! – Henric

+0

Прохладный. В худшем случае вы можете прокручивать DataTable, но может быть возможно добавить отличия DateTime в одном вызове метода Compute («SUM (...)»). Я не думаю, что lateiff() поддерживается, но стоит попробовать. –

1

Вы можете вычесть одну дату из другой, чтобы получить TimeSpan блок, который даст вам данные, которые вы требуете.

Вам нужно будет вычислить это в исходных данных или в связанном с строкой значении данных, которое вы можете получить и выполнить вычисления.

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