2016-04-13 19 views
0

簡単に言えば、私は開始日/終了日を格納する日付範囲オブジェクトを持っています。 重複のない2つの日付範囲を比較するだけでなく、最初の範囲の終了日が2番目の範囲の開始日と等しい隣接範囲を許可することもできます。 2016年1月1日11:30オーバーラップの日付範囲を比較して隣接範囲を許可する

I -

範囲1 = 2016年1月1日10:00 - 2016年1月1日10:30 範囲2 = 2016年1月1日10:30 ac#関数の作成にいくつかのことがありましたが、それを正しく動作させるように見えます。

助けてください。

このような何かが動作するはず
+1

あなたは現在何を持っていますか? –

答えて

0

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;     
    } 
+0

それは素晴らしい作品のようにありがとう! – Milsnipsky

0
あなたの助けに感謝:-)素晴らしい作品

。私は以下のシナリオで上記のコードをテストしました:

//これは、アカウントに次の範囲のシナリオを取る必要があります // 1。 range1は範囲2で開始し、いつでも終了します
// 2。 range2は範囲1で開始し、いつでも終了します
// 3。 range1はrange2の開始前に開始し、range2以降で終了します。
// 4。 range2は範囲1の開始前に開始し、範囲1以降で終了します。
// 5範囲1は完全に範囲2をオーバーラップします
// 6。 range2は完全に範囲1をオーバーラップする

r1 endがr2 startに等しい隣接範囲を許可する必要があります。