假设我们正在跟踪用户执行某项操作的时间,并且我们想知道所述操作之间的平均时间.
例如,如果用户在以下时间执行此操作:
结果将是2.5小时.
我实际上已经解决了这个问题,但我觉得我的解决方案比必要的更复杂.我会发布它作为答案.
看来你基本上都在寻找Max - Min除以Count.
public TimeSpan? Average
{
get
{
var diff = _dateTimes.Max().Subtract(_dateTimes.Min());
var avgTs = TimeSpan.FromMilliseconds(diff.TotalMilliseconds / (_dateTimes.Count() - 1));
return avgTs;
}
}
Run Code Online (Sandbox Code Playgroud)
确保检查是否存在多个DateTime.
更新:如果您使用Ticks,则更准确.
TimeSpan.FromTicks(diff.Ticks / (_dateTimes.Count() - 1));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5277 次 |
最近记录: |