adjustForQuietHours method

DateTime adjustForQuietHours({
  1. required DateTime scheduledTime,
  2. required int quietStartHour,
  3. required int quietEndHour,
  4. List<int> quietDays = const <int>[],
})

Adjusts scheduled time to avoid quiet hours.

Implementation

DateTime adjustForQuietHours({
  required DateTime scheduledTime,
  required int quietStartHour,
  required int quietEndHour,
  List<int> quietDays = const <int>[],
}) {
  if (!isInQuietHours(
    scheduledTime: scheduledTime,
    quietStartHour: quietStartHour,
    quietEndHour: quietEndHour,
    quietDays: quietDays,
  )) {
    return scheduledTime;
  }

  // Move to the end of quiet hours
  DateTime adjustedTime = DateTime(
    scheduledTime.year,
    scheduledTime.month,
    scheduledTime.day,
    quietEndHour,
  );

  // If quiet hours end the next day, add a day
  if (quietStartHour > quietEndHour && scheduledTime.hour >= quietStartHour) {
    adjustedTime = adjustedTime.add(const Duration(days: 1));
  }

  return adjustedTime;
}