avg method
Calculates and returns the average DateTime
from an iterable.
Ignores null
values. The average is computed based on the
millisecondsSinceEpoch
of all valid dates. Returns null
if the
iterable is null or contains no valid dates.
Implementation
DateTime? avg(Iterable<DateTime?>? dates) {
if (dates == null) return null;
final filteredDates = dates.whereType<DateTime>();
if (filteredDates.isEmpty) return null;
final totalMs = filteredDates.fold<int>(
0,
(sum, date) => sum + date.millisecondsSinceEpoch,
);
final avgMs = totalMs ~/ filteredDates.length;
return DateTime.fromMillisecondsSinceEpoch(avgMs);
}