validateSleepGoal function

bool validateSleepGoal({
  1. required PickedTime inTime,
  2. required PickedTime outTime,
  3. required double sleepGoal,
  4. ClockTimeFormat clockTimeFormat = ClockTimeFormat.twentyFourHours,
  5. ClockIncrementTimeFormat clockIncrementTimeFormat = ClockIncrementTimeFormat.fiveMin,
})

Implementation

bool validateSleepGoal({
  required PickedTime inTime,
  required PickedTime outTime,
  required double sleepGoal,
  ClockTimeFormat clockTimeFormat = ClockTimeFormat.twentyFourHours,
  ClockIncrementTimeFormat clockIncrementTimeFormat =
      ClockIncrementTimeFormat.fiveMin,
}) {
  var clockTimeDivision = getClockTimeFormatDivision(
    clockTimeFormat,
    clockIncrementTimeFormat,
  );

  var _inTime = pickedTimeToDivision(
    pickedTime: inTime,
    clockTimeFormat: clockTimeFormat,
    clockIncrementTimeFormat: clockIncrementTimeFormat,
  );
  var _outTime = pickedTimeToDivision(
    pickedTime: outTime,
    clockTimeFormat: clockTimeFormat,
    clockIncrementTimeFormat: clockIncrementTimeFormat,
  );

  var sleepTime = _outTime > _inTime
      ? _outTime - _inTime
      : clockTimeDivision - _inTime + _outTime;

  var timeDivisor = 60 ~/ clockIncrementTimeFormat.value;
  var sleepHours = sleepTime ~/ timeDivisor;
  return (sleepHours >= sleepGoal) ? true : false;
}