using System.Threading.Tasks;
public static async Task Main()
var newStartDate = new DateTime(2024, 04, 01);
var newEndDate = new DateTime(2024, 04, 07);
var existingStartDate = new DateTime(2024, 03, 02);
var existingEndDate = new DateTime(2024, 03, 03);
var overlapsStart = CheckOverlap(newStartDate, existingStartDate, existingEndDate) || CheckOverlap(existingStartDate, newStartDate, newEndDate);
var overlapsEnd = CheckOverlap(newEndDate, existingStartDate, existingEndDate) || CheckOverlap(existingEndDate, newStartDate, newEndDate);
var overlaps = overlapsStart || overlapsEnd;
Console.WriteLine($"Overlaps: {overlaps}, Start: {overlapsStart}, End: {overlapsEnd}");
static bool CheckOverlap(DateTime compare, DateTime start, DateTime end)
=> compare >= start && compare <= end;