roundTo method
Rounds the DateTime to the nearest interval of the given duration.
Implementation
DateTime roundTo(Duration duration) {
if (duration == Duration.zero) return this;
final half = duration.inMicroseconds / 2;
final micros = microsecondsSinceEpoch;
final newMicros =
((micros + half) ~/ duration.inMicroseconds) * duration.inMicroseconds;
return DateTime.fromMicrosecondsSinceEpoch(newMicros, isUtc: isUtc);
}