簡體   English   中英

計算List <>時間戳中的時間跨度

[英]Calculate timespan in an List<> of time stamps

我有一個清單:

List<DateTime> timeStamp;

讓我們說該列表包含以下DateTimes:

2006-09-07 11:46:09
2006-09-07 11:46:19
2006-09-07 11:46:20
2006-09-07 11:46:36

2006-09-07 11:47:49
2006-09-07 11:47:53
2006-09-07 11:48:02
2006-09-07 11:48:15
2006-09-07 11:48:29
2006-09-07 11:48:34

2006-09-07 11:54:29
2006-09-07 11:54:39
2006-09-07 11:54:49
2006-09-07 11:54:59

2006-09-07 11:56:19
2006-09-07 11:56:29
2006-09-07 11:56:39 

2006-09-07 11:58:29
2006-09-07 11:58:34
2006-09-07 11:58:45
2006-09-07 11:58:53

2006-09-07 12:00:29
2006-09-07 12:00:39
2006-09-07 12:00:45
2006-09-07 12:00:54
2006-09-07 12:01:03

現在,我想計算總累計時間。 所有這些時間都在同一個列表中,間隙表示停止/開始部分。 我也無法控制時間戳的間隔。 它可能是10秒,可能是1分鍾。 感謝您的幫助!

如果您可以定義差距的長度,這是一個新的答案:

var length = timestamps
           .Zip(timestamps.Skip(1), (a, b) => b - a)      // pairwise entries and timespan
           .Where(gap => gap < TimeSpan.FromSeconds(180)) // ignore large gaps
           .Sum(x => x.TotalMilliseconds);                // total span in ms

這通過將列表壓縮為自身來工作,以便可以選擇彼此相鄰的條目(即,列表被選擇為“成對”)。 時間跨度是根據這些來計算的,並且過濾掉了大的時間跨度(即您想要忽略的間隔)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM