усреднение значений событий, связанных со значениями даты, по часам, дням и т. д. - PullRequest
0 голосов
/ 29 октября 2010

У меня есть куча событий со значениями (сколько людей прошло через дверной проем). Каждое событие связано с датой. Для событий нет фиксированного периода. Если никто не входит через дверь, событие не генерируется, но часто несколько человек могут пройти одновременно, поэтому значение может быть больше единицы.

Иногда события отделяются минутами, иногда есть промежутки в несколько часов,

Используя класс Date, существует ли простой способ усреднить мои значения за периоды времени?

1 Ответ

0 голосов
/ 29 октября 2010

Как-то так?

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
...