public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public DateRange(DateTime start, DateTime end)
public static void Main()
var staticDateRange = new DateRange(new DateTime(2018,8,10), new DateTime(2018,8,13));
var testRange1 = new DateRange(new DateTime(2018,8,10), new DateTime(2018,8,13));
Console.WriteLine(DateRangesOverlap(staticDateRange, testRange1));
var testRange2 = new DateRange(new DateTime(2018,8,13), new DateTime(2018,8,16));
Console.WriteLine(DateRangesOverlap(staticDateRange, testRange2));
var testRange3 = new DateRange(new DateTime(2018,8,8), new DateTime(2018,8,10));
Console.WriteLine(DateRangesOverlap(staticDateRange, testRange3));
var testRange4 = new DateRange(new DateTime(2018,8,8), new DateTime(2018,8,8));
Console.WriteLine(DateRangesOverlap(staticDateRange, testRange4));
public static bool DateRangesOverlap(DateRange range1, DateRange range2)
return (range1.StartDate >= range2.StartDate && range1.StartDate <= range2.EndDate) ||
(range1.EndDate >= range2.StartDate && range1.EndDate <= range2.EndDate);