我有一個程序,我不需要在星期六運行幾個小時。我如何編碼以檢查當前時間是星期六1800到2100?我有日期時間設定,我想我可以先檢查一下,看看是否每週星期= 6,然後檢查時間,看看它是否在這幾個小時之間,但我想知道是否有人知道更好的方法?如何檢查某一天在C中的時間#
謝謝!
我有一個程序,我不需要在星期六運行幾個小時。我如何編碼以檢查當前時間是星期六1800到2100?我有日期時間設定,我想我可以先檢查一下,看看是否每週星期= 6,然後檢查時間,看看它是否在這幾個小時之間,但我想知道是否有人知道更好的方法?如何檢查某一天在C中的時間#
謝謝!
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
}
多一點優化,你可以將dayofweek條件與小時條件交換。星期幾條件代表6/7的機會失敗,所以這應該首先檢查(如果這將要檢查很多時間) –
我假設從C++進入C#的權利,左括號和括號深度,但顯然根據C#4.0語言規範,從左到右和深度。 – bizzehdee
這看起來不錯!現在,實際上,我需要從星期六晚上2300到週日0200,所以它會是這樣的: 'code' if(!(time.Hour == 23 && time.DayOfWeek == DayOfWeek.Saturday ))|| (!((time.Hour> = 0 && time.Hour> = 2)&& time.DayOfWeek == DayOfWeek.Sunday)) { //它不在這些時間之間 } 'code' –
使用C#
日期時間庫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
你在找什麼樣的「更好」? (我會明確比較DayOfWeek.Saturday,但除此之外...) –
這是Windows服務嗎? – shahkalpesh
@shahkalpesh:無論它是否是服務都無所謂。看看當天是星期六,然後測試時間是在下午6點到晚上9點之間,而不執行該方法幾乎是這樣做的方法。 – NotMe