我有一个日期时间和值的表。该值是日期时间的罐的体积。我想计算过去 10 天内每小时填充/清空多少水箱。
我每 15 分钟测量一次水箱,但也许将来我会每 20 分钟测量一次。我正在尝试使用 LINQ 计算它。
我所做的是:
allDataView.RowFilter = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
"DateOfData < #{0}# AND DateOfData > #{1}#", DateTime.Now, DateTime.Now.AddDays((-1) * daysInterval));
allDataView.Sort = "DateOfData DESC";
// making the diff between every sample during the last daysInterval days and put it into a list with these differences.
var result = allDataView.Table.AsEnumerable().Zip(allDataView.Table.AsEnumerable().Skip(1), (row1, row2) => Convert.ToDouble(row1["Value"])-Convert.ToDouble(row2["Value"]));
但这些是每次测量之间的差异。我想要的是计算那几天期间样本之间的差异。
例如:
9:50 0.5
10:05 1
10:20 2
10:35 2.5
10:50 3
11:05 5
比我想取 11:00 (3) 中的最新值并取 10:00 (0.5) 中的最后一个值并将其 3-0.5 = 2.5 插入列表并在该时间段内继续。
我想用 Linq 来做。感谢任何帮助如何实施它。
非常感谢。