public static void Main()
var january2018 = new DateRange("2018-01-01", "2018-01-31");
Debug.Assert(false == january2018.Overlaps(new DateRange("2018-02-01", "2018-02-28")));
Debug.Assert(true == january2018.Overlaps(new DateRange("2018-01-15", "2018-02-28")));
Debug.Assert(true == january2018.Overlaps(new DateRange("2018-01-15", "2018-01-20")));
Debug.Assert(true == january2018.Overlaps(new DateRange("2018-01-01", "2018-01-31")));
Debug.Assert(false == january2018.Overlaps(new DateRange("2017-01-15", "2017-01-20")));
Debug.Assert(true == january2018.Overlaps(new DateRange("2017-12-15", "2018-01-20")));
Debug.Assert(true == january2018.Overlaps(new DateRange("2017-12-15", "2018-02-28")));
Console.WriteLine("Success");
public bool Overlaps(DateRange range2)
Console.WriteLine("Checking: {0} and {1}", this.ToString(), range2.ToString());
throw new NotImplementedException();
public DateRange(string start, string end) : this(DateTime.Parse(start), DateTime.Parse(end)) { }
public DateRange(DateTime start, DateTime end)
public DateTime Start { get; set; }
public DateTime End { get; set; }
public override string ToString()
public string ToString(string format)
return string.Format("{0} - {1}", Start.ToString(format), End.ToString(format));
public static class Debug
public static void Assert(bool value)
throw new Exception("Assertion failed");