code: public final boolean overlaps(@NotNull final HourRange other) {
          Contract.requireArgNotNull("other", other);
          if (this.equals(other)) {
              return true;
          }
          final int otherFrom = other.from.toMinutes();
          final int thisFrom = from.toMinutes();
          final int otherTo = other.to.toMinutes();
          final int thisTo = to.toMinutes();
          if (otherFrom <= thisTo && otherFrom >= thisFrom) {
              return true;
          }
          if (otherTo <= thisTo && otherTo >= thisFrom) {
              return true;
          }
          if (thisFrom <= otherTo && thisFrom >= otherFrom) {
              return true;
          }
          return (thisTo <= otherTo && thisTo >= otherFrom);
      }
docs: Determines if this range and the given range overlap.
  
  @param other
  Range to compare with.
  
  @return {@literal true} if the two ranges overlap, else {@literal false}.