-6

ある特定の日に特定の人に与えられた複数の出入り時間を使用して、Office で合計 InTime を計算する C# コードを作成する方法。従業員の合計 InTime。

データは、Excel シート xyz で次のようになります。

 **Date          Event Description   Item Description**
12/21/2012 1:51 Exit granted    Ban Swapnil
12/21/2012 2:45 Entry granted   Ban Swapnil
12/21/2012 8:12 Exit granted    Ban Swapnil
12/25/2012 22:44    Entry granted   Ban Swapnil
12/26/2012 0:59 Exit granted    Ban Swapnil
12/26/2012 1:34 Entry granted   Ban Swapnil
12/26/2012 8:15 Exit granted    Ban Swapnil
12/26/2012 22:05    Entry granted   Ban Swapnil
12/26/2012 23:46    Exit granted    Ban Swapnil
12/21/2012 1:24 Exit granted    Bandel Ashish Chander
12/21/2012 15:23    Entry granted   Bandel Ashish Chander
12/21/2012 15:34    Exit granted    Bandel Ashish Chander
12/21/2012 15:51    Entry granted   Bandel Ashish Chander
12/21/2012 16:06    Exit granted    Bandel Ashish Chander
12/21/2012 16:29    Entry granted   Bandel Ashish Chander
12/21/2012 17:56    Exit granted    Bandel Ashish Chander
12/21/2012 18:32    Entry granted   Bandel Ashish Chander
12/21/2012 19:03    Exit granted    Bandel Ashish Chander
12/21/2012 19:37    Entry granted   Bandel Ashish Chander
12/21/2012 21:40    Exit granted    Bandel Ashish Chander
12/21/2012 21:50    Entry granted   Bandel Ashish Chander
12/21/2012 23:01    Exit granted    Bandel Ashish Chander
12/24/2012 13:39    Entry granted   Bandel Ashish Chander
12/24/2012 13:41    Exit granted    Bandel Ashish Chander
12/24/2012 14:52    Entry granted   Bandel Ashish Chander
12/24/2012 15:54    Exit granted    Bandel Ashish Chander
12/24/2012 16:41    Entry granted   Bandel Ashish Chander
12/24/2012 18:31    Exit granted    Bandel Ashish Chander
12/24/2012 22:07    Entry granted   Bandel Ashish Chander
12/24/2012 23:00    Exit granted    Bandel Ashish Chander
12/25/2012 14:00    Entry granted   Bandel Ashish Chander
12/25/2012 14:02    Exit granted    Bandel Ashish Chander
12/25/2012 14:48    Entry granted   Bandel Ashish Chander
12/25/2012 18:45    Exit granted    Bandel Ashish Chander
12/26/2012 13:14    Entry granted   Bandel Ashish Chander
12/26/2012 13:29    Exit granted    Bandel Ashish Chander
12/26/2012 14:33    Entry granted   Bandel Ashish Chander
12/26/2012 17:45    Exit granted    Bandel Ashish Chander
4

1 に答える 1

2

これは非常に簡単です。あなたはおそらくそれを考え抜いていないだけです。TimeSpanとして2つの日付の違いを取得できます。date1 - date2これは、時間/分/秒の数を提供するTimeSpan構造を実行して取得できることを意味します。

ここで、特定のユーザーのイン時間とアウト時間がたくさんあるとすると、イン時間とアウト時間のペアのリストが必要になります。2タプルはこの作業に最適なので、2タプルのリストがあります。

イン/アウトタイムペアのマップがあれば、TimeSpansを合計することができます。次に例を示します。

(あなたのデータは私には意味がないことに注意してください、しかしあなたがあなたのデータから以下のリストを生成することができればあなたが持っている問題の声明は解決されます。)

List<Tuple<DateTime,DateTime>> lstForOnePerson = ..
int totalHours = 0;
foreach(var tup in lstForOnePerson)
{
 //this is assuming the first item in the tuple is IN time and the second is OUT
 TimeSpan tm = tup.Item2 - tup.Item1;
 totalHours += tm.TotalHours;
}
于 2013-02-06T18:17:53.977 に答える