roundTo method

DateTime roundTo(
  1. Duration duration
)

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);
}