# Can't do statistics with Dates?

``````julia> d = diff(collect(Dates.Date(1980,1,1):Dates.Month(3):Dates.Date(2019,1,1)))
156-element Vector{Day}:
91 days
91 days
92 days
92 days
...
``````
``````julia> mean(d)
ERROR: InexactError: Int64(91.31410256410257)
``````

Dates uses an exact integer representation, which is helpful in a lot of cases, but sometimes a floating point representation is more useful. I’ve been using functions like

``````using Unitful, Dates

"""
seconds(s) -> Unitful.Quantity

Converts a `Dates.TimePeriod` or Unitful time quantity to seconds.
"""
seconds

seconds(s::Unitful.Quantity) = uconvert(u"s", s)
seconds(s::TimePeriod) = seconds(Nanosecond(s))
seconds(s::Nanosecond) = Dates.value(s)*1e-9 * u"s"
``````

as an easy way to convert to one. (With a loop to then also similarly define minutes, hours, days, etc.). It’s been working fine for me, except for that `StatsBase.summarystats` is too narrowly typed to handle Unitful quantities.

Perhaps

``````julia> mean(getfield.(d,:value))
91.31410256410257
``````

Thanks. That will have to do it but won’t stand favorable next to the Matlab code I’m replicating

You only need to convert the Days to Int64s once when assigning to durs. Afterwards you statistical function calls look about the same.