roundMinutes function

int roundMinutes(
  1. int minutes,
  2. int step, {
  3. int mode = 0,
})

Rounds minutes to nearest step (e.g. 5, 10, 15). mode: 0=nearest, 1=floor, 2=ceil.

Implementation

int roundMinutes(int minutes, int step, {int mode = 0}) {
  if (step < 1) return minutes;
  final int q = minutes ~/ step;
  final int r = minutes % step;
  if (mode == 1) return q * step;
  if (mode == 2) return (q + (r > 0 ? 1 : 0)) * step;
  return (r * 2 >= step ? q + 1 : q) * step;
}