-3

私の要件はCurrent Time、2つの間に落ちるかどうかを確認したいということですSpecified Times

シナリオ 1:

TimeNow: 02:00:00(Tommorow)  
TimeSpan To Check 4am To 3am(next day)

シナリオ 2:

TimeNow: 06:00:00  
TimeSpan To Check 4am To 3am(next day)

上記のコードを C# にしたかったのです。そうするためのロジックが得られません。

4

2 に答える 2

0

このメソッドは、現在の時間が startTime より大きいか等しいかどうか、および currentTime が endTime より小さいか同じかどうかを示します。

static bool Between(DateTime startTime, DateTime endTime)
{
    var currentTime = DateTime.Now;

    if (currentTime >= startTime && currentTime <= endTime)
        return true;

    return false;
}

static bool Between(TimeSpan startTime, TimeSpan endTime)
{
    DateTime dt1 = new DateTime(startTime.Ticks);
    DateTime dt2 = new DateTime(endTime.Ticks);

        return Between(dt1, dt2);
}
于 2013-09-12T06:18:59.667 に答える
0

start と end の 2 つの時間があり、それらは真夜中のいずれかの側に発生する可能性がありますが、それらの間の間隔は常に 24 時間未満であると仮定すると、(疑似コードで) テストする必要があります。

 if (start < end) return start < desired AND desired < end
 else return desired < end OR start < desired

つまり、間隔が完全に 1 日以内の場合は、その間隔内にあるかどうかをテストします。それ以外の場合は、1 日の終わりにラップする場合は、どちらかのフラグメント内にあるかどうかを確認します。

于 2013-09-12T06:32:36.460 に答える