You can calculate avg by Time objects (they can be in different days). Something like this should work.
deliveries_at = @deliveries.map { |d| d.time.hour * 3600 + d.time.min * 60 + t.sec }
avg = deliveries_at.inject(:+) / deliveries_at.count
avg_hour = avg / 3600
avg_minute = (avg % 3600) / 60
avg_second = avg % 60
First line collect seconds-from-the-start-of-the-day for each delivery. Second line calculate average (in seconds) and last three lines turn it into hour/minute/second.