formatIntervalTime function

PickedTime formatIntervalTime({
  1. required PickedTime init,
  2. required PickedTime end,
  3. ClockTimeFormat clockTimeFormat = ClockTimeFormat.twentyFourHours,
  4. ClockIncrementTimeFormat clockIncrementTimeFormat = ClockIncrementTimeFormat.fiveMin,
})

Implementation

PickedTime formatIntervalTime({
  required PickedTime init,
  required PickedTime end,
  ClockTimeFormat clockTimeFormat = ClockTimeFormat.twentyFourHours,
  ClockIncrementTimeFormat clockIncrementTimeFormat =
      ClockIncrementTimeFormat.fiveMin,
}) {
  var clockTimeDivision = getClockTimeFormatDivision(
    clockTimeFormat,
    clockIncrementTimeFormat,
  );

  var _init = pickedTimeToDivision(
    pickedTime: init,
    clockTimeFormat: clockTimeFormat,
    clockIncrementTimeFormat: clockIncrementTimeFormat,
  );
  var _end = pickedTimeToDivision(
    pickedTime: end,
    clockTimeFormat: clockTimeFormat,
    clockIncrementTimeFormat: clockIncrementTimeFormat,
  );

  var sleepTime =
      _end > _init ? _end - _init : clockTimeDivision - _init + _end;

  var timeDivisor = 60 ~/ clockIncrementTimeFormat.value;
  var hours = sleepTime ~/ timeDivisor;
  var minutes = (sleepTime % timeDivisor) * clockIncrementTimeFormat.value;

  return PickedTime(
    h: hours,
    m: minutes,
  );
}