1

この問題を解決するためのロジックを見つけようとしていますが、行き詰まっています。

データベースに6つの日時列があります。以下のように

StartDate =  {14/1/2012 11:00:00 AM}
EndDate=     {14/1/2012 11:30:00 AM}

**Break between start and End Date is 30 mins**

StartDate2 = {14/1/2012 11:30:00 AM}
EndDate2=    {14/1/2012 12:30:00 PM}

**Break between start1 and End1 Date is 1hr**

StartDate3 = {14/1/2012 12:00:00 PM}
EndDate3=    {14/1/2012 01:30:00 PM}
**Break between start2 and End2 Date is 1hr is 1hr**

各日付セット間の休憩を見つけて、決勝を合計しようとしています。

例:

StartDate =  {14/1/2012 11:00:00 AM}
EndDate=     {14/1/2012 11:30:00 AM}

開始日と終了日の間の休憩は30分です。

しかし、開始日と終了日2と3を見ると、時間が重なっています。したがって、このシナリオでタイムスパンがどのように役立つかはわかりません。

3つのタイムスタンプすべてと合計の間の合計休憩は2時間30分である必要があります

この問題を解決するために誰かがアイデアを投げてください。

前もって感謝します

4

1 に答える 1

3

このシナリオでタイムスパンがどのように役立つかわからない。

TimeSpan後の時間を前の時間を差し引くことによって生成されたものは負になります。例えば、

var dt1 = DateTime.Parse("02/10/2013 12:20");
var dt2 = DateTime.Parse("02/10/2013 12:00");
Console.WriteLine(dt2.Subtract(dt1));

印刷し-00:20:00ます。

間隔が負であるかどうかを確認して、重複を検出できます。Ticksこれを行う1つの方法は、プロパティが負であるかどうかを調べることです。

var dt1 = DateTime.Parse("02/10/2013 12:20");
var dt2 = DateTime.Parse("02/10/2013 12:00");
var diff = dt2.Subtract(dt1);
if (diff.Ticks < 0) {
    Console.WriteLine("An overlap is detected.");
}
于 2013-02-11T03:05:54.947 に答える