我有很多带有价值观的事件(有多少人通过了门口)。每个事件都与日期相关联。事件没有固定的时间段。如果没有人进门,就不会产生任何事件,但通常会有多个人同时进行,所以价值可能大于一。
有时事件相隔几分钟,有时候会有几个小时的差距,
使用Date类,是否有一种简单的方法可以在一段时间内平均我的值?
答案 0 :(得分:0)
这样的东西?
Private Function getAverageDate(ByVal allDates As List(Of Date)) As Date
If Not allDates Is Nothing AndAlso allDates.Count <> 0 Then
Dim total As Int64
For Each d As Date In allDates
total += d.Ticks
Next
Return New Date(System.Convert.ToInt64(total / allDates.Count))
Else
Return Date.MinValue
End If
End Function
或者如果您正在寻找TimeSpan:
Private Function getAveragePeriod(ByVal allPeriods As List(Of TimeSpan)) As TimeSpan
If Not allPeriods Is Nothing AndAlso allPeriods.Count <> 0 Then
Dim total As Int64
For Each ts As TimeSpan In allPeriods
total += ts.Ticks
Next
Return TimeSpan.FromTicks(System.Convert.ToInt64(total / allPeriods.Count))
Else
Return TimeSpan.Zero
End If
End Function