-2

土曜日に数時間実行する必要のないプログラムがあります。現在の時刻が 1800 から 2100 の間の土曜日であるかどうかを確認するようにコーディングするにはどうすればよいですか? 日時を設定して、最初に曜日 = 6 かどうかを確認してから、時間を確認してそれらの時間の間にあるかどうかを確認できると考えましたが、誰かがより良い方法を知っているかどうか疑問に思っていましたか?

ありがとう!

4

2 に答える 2

5
if ((DateTime.Now.Hour >= 18 && DateTime.Now.Hour <= 21) && DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
{
    //it is between 6 and 9pm on saturday
}

または、全体を逆にして、それらの時間以外の時間をチェックすることもできます

if (!((DateTime.Now.Hour >= 18 && DateTime.Now.Hour <= 21) && DateTime.Now.DayOfWeek == DayOfWeek.Saturday))
{
    //it is NOT between 6 and 9pm on saturday
}

編集:または、これを最適化し、チェックに時間がかからないようにする場合。期間に出入りするには、次のことができます。

DateTime dt = DateTime.Now;

if ((dt.Hour >= 18 && dt.Hour <= 21) && dt.DayOfWeek == DayOfWeek.Saturday)
{
    //it is between 6 and 9pm on saturday
}

または、全体を逆にして、それらの時間以外の時間をチェックすることもできます

if (!((dt.Hour >= 18 && dt.Hour <= 21) && dt.DayOfWeek == DayOfWeek.Saturday))
{
    //it is NOT between 6 and 9pm on saturday
}
于 2013-07-09T20:08:36.320 に答える
1

C# の DateTime ライブラリを使用する

DateTime date = DateTime.Now;
TimeSpan startTime = new TimeSpan(18, 00, 00);
TimeSpan endTime = new TimeSpan(19, 00, 00);
if (date.DayOfWeek.Equals(DayOfWeek.Saturday) && 
                  date.TimeOfDay >= startTime && 
                  date.TimeOfDay <= endTime )
    //Do the operation that you want
于 2013-07-09T20:27:10.940 に答える