I forget this every time.
C#
public bool NumbersOverlap(int Set1Min, int Set1Max,
int Set2Min, int Set2Max)
{ return (Set2Min >= Set1Min && Set2Min <= Set1Max) ||
(Set2Max <= Set1Max && Set2Max >= Set1Min) ||
(Set2Min <= Set1Min && Set2Max >= Set1Max);
}
VB 6
Private Function NumbersOverlap(Set1Min As Integer, Set1Max As Integer, _
Set2Min As Integer, Set2Max As Integer) As Boolean
NumbersOverlap = (Set2Min >= Set1Min And Set2Min <= Set1Max) _
Or (Set2Max <= Set1Max And Set2Max >= Set1Min) _
Or (Set2Min <= Set1Min And Set2Max >= Set1Max)
End Function
Unit Tests
Console.WriteLine(NumbersOverlap(1, 10, 11, 15)); // false
Console.WriteLine(NumbersOverlap(8, 19, 19, 25)); // true
Console.WriteLine(NumbersOverlap(8, 19, 19, 25)); // true
Console.WriteLine(NumbersOverlap(8, 20, 19, 25)); // true
Console.WriteLine(NumbersOverlap(8, 20, 1, 25)); // true
Console.WriteLine(NumbersOverlap(8, 30, 1, 25)); // true
Console.WriteLine(NumbersOverlap(8, 25, 1, 25)); // true
Console.WriteLine(NumbersOverlap(25, 50, 1, 25)); // true