获取表中每个键的总时间跨度

时间:2016-06-22 08:44:50

标签: c# sql-server linq

我有一个包含以下数据的数据表:

LINE | SIGN | DATE
-----------------------------------------
   1 |   1  |  2015-03-02 11:23:25
   1 |   1  |  2015-03-02 18:24:03
   1 |   1  |  2015-03-03 05:38:49
   1 |   0  |  2015-03-03 08:47:02
   1 |   1  |  2015-03-03 14:01:31
   1 |   1  |  2015-03-03 21:11:53
   1 |   1  |  2015-03-04 09:34:04
   1 |   0  |  2015-03-04 15:29:27
   1 |   0  |  2015-03-04 19:28:33

如您所见,数据按日期排序,我的要求是获取信号的总分钟数。比如信号是多少分钟是1,信号是多少分钟。

我需要一个LINQ查询来获得结果。

目前我的想法是我可能需要进行for循环并添加分钟数。我不知道这是否是唯一的方法:

int noOfMinutesFor1 = 0;
for (int i = 1; i < signalData.Count; i++)
{
    if((signalData[i - 1].SIGN == signalData[i].SIGN == 1) || (signalData[i].SIGN == 1 && signalData[i - 1].SIGN == 0))
    {
        noOfMinutesFor1 += (signalData[i].SIGN - signalData[i - 1].SIGN).TotalMinutes;
    }

}

1 个答案:

答案 0 :(得分:1)

这就是我要做的事情:

这个想法是将每个信号的所有日期分组,然后按降序排序日期,减去每一对,并将偏移小时和分钟(以分钟为单位)放在一边。

Soccer.c

enter image description here

Soccer.h

输出:

enter image description here