2009-04-17 25 views
1

DataGridviewですべての行を処理する必要があるため、少し苦労しています。私が望むのは、datagridview内のすべての行に、datetimesを持つ2つの列があることです。 1つはLogInTimeを表し、もう1つはLogOutTimeを表します。私は、datagridviewに表示される行のすべてのログイン時間とログアウト時間の合計時間と分を取得したいと思います。これを実装する方法に関する提案はありますか?DataGridViewのDateTime列を使用して合計時間を計算する

答えて

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をループすることができますが、単一のCompute( "SUM(...)")メソッド呼び出しでDateTimeの違いを追加することは可能かもしれません。私はdatediff()がサポートされているとは思わないが、試してみる価値がある。 –

1

あなたはあなたが必要とするデータを与えるのTimeSpan単位を取得するために別の1つの日付を引くことができます。

ソースデータまたはローデータバウンドイベントでこれを計算し、データを取得して計算を行う必要があります。

関連する問題