簡單地說,我有一個日期範圍對象,它存儲了一個開始/結束日期。 我想要比較2個不重疊的日期範圍,但也允許第一個範圍結束日期等於第二個範圍開始日期的相鄰範圍。重疊比較日期範圍,但允許相鄰範圍
範圍1 = 2016年1月1日10:00 AM - 2016年1月1日上午10時30 範圍2 = 2016年1月1日上午10時30分 - 2016年1月1日11:30 AM
我已經有幾個人在創建ac#的功能,但似乎無法正常工作。
任何幫助表示讚賞。
簡單地說,我有一個日期範圍對象,它存儲了一個開始/結束日期。 我想要比較2個不重疊的日期範圍,但也允許第一個範圍結束日期等於第二個範圍開始日期的相鄰範圍。重疊比較日期範圍,但允許相鄰範圍
範圍1 = 2016年1月1日10:00 AM - 2016年1月1日上午10時30 範圍2 = 2016年1月1日上午10時30分 - 2016年1月1日11:30 AM
我已經有幾個人在創建ac#的功能,但似乎無法正常工作。
任何幫助表示讚賞。
像這樣的東西應該工作:
public class DateRange
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public bool Overlaps(DateRange otherRange)
{
if (StartDate < otherRange.EndDate && StartDate >= otherRange.StartDate)
return true;
if (otherRange.StartDate < EndDate && otherRange.StartDate >= StartDate)
return true;
if (EndDate > otherRange.StartDate && EndDate <= otherRange.EndDate)
return true;
if (otherRange.EndDate < StartDate && otherRange.EndDate >= EndDate)
return true;
return false;
}
謝謝你看起來好像很棒! – Milsnipsky
的幫助偉大的工程:-)感謝。我已經使用以下方案測試了上述代碼:
//這需要將以下範圍場景記入帳戶 // 1。 range1從range2開始,每當
// 2時結束。 range2從range1開始,每當
// 3時結束。範圍1在範圍2開始之前開始,並在範圍2內或範圍之後結束
// 4。範圍2在範圍1開始之前開始並在範圍1內或範圍後結束
// 5。範圍1完全重疊範圍2
// 6。範圍2完全重疊範圍1
它應該允許r1結束等於r2開始的相鄰範圍。
你現在有什麼? –