areRangesOverlapping static method

bool areRangesOverlapping(
  1. DateTime initialRangeStartDate,
  2. DateTime initialRangeEndDate,
  3. DateTime comparedRangeStartDate,
  4. DateTime comparedRangeEndDate,
)

Know if two ranges of dates overlaps

Implementation

static bool areRangesOverlapping(
  DateTime initialRangeStartDate,
  DateTime initialRangeEndDate,
  DateTime comparedRangeStartDate,
  DateTime comparedRangeEndDate,
) {
  if (initialRangeStartDate.isAfter(initialRangeEndDate)) {
    throw RangeError('Not valid initial range');
  }

  if (comparedRangeStartDate.isAfter(comparedRangeEndDate)) {
    throw RangeError('Not valid compareRange range');
  }

  final initial = Interval(initialRangeStartDate, initialRangeEndDate);
  final compared = Interval(comparedRangeStartDate, comparedRangeEndDate);

  return initial.cross(compared) || compared.cross(initial);
}