我正在創建一個windows服務,用於檢查文件夾,其他服務等。併發送警報文本消息,如果其中任何一個停止。但是,我並不想在特定時間段(從23.00晚上到07.00早上)獲取警報消息。跨越2天的時間檢查
該服務通過XML配置文件進行設置,可以預定義該靜默期。
我需要一種方法來檢查服務是否在一段時間內運行,所以它會掛起文本消息。該服務每5分鐘檢查一次,因此我無法弄清楚在這些檢查過程中如何應對日子的轉移。
要闡述:
我當前的代碼:
bool silende = false;
DateTime silenceModeFrom = new DateTime(
DateTime.Now.Year,
DateTime.Now.Month,
DateTime.Now.Day,
int.Parse(doc.XPathSelectElement(
"//SurveilanceServiceConfig/SilenceModeTimeFrom").Value),
00,
00);
DateTime silenceModeTo = silenceModeFrom.AddHours(
int.Parse(doc.XPathSelectElement(
"//SurveilanceServiceConfig/SilenceModeTimeHours").Value));
if (DateTime.Now > silenceModeFrom && DateTime.Now < silenceModeTo)
{
silence = true;
}
在這段代碼中,檢查工作,如果它是24.00之前提出的,但不能作爲後等DateTime.Now.Day
,將是第二天。所以從理論上講,代碼只會驗證沉默期爲每天23.00到24.00。
爲什麼你不能解決這個問題?通過轉移日期,你的意思是什麼?請更具體! –
您能否詳細說明「*我無法弄清楚如何應對天移*」 - 一天不轉移。時間的確基於DST之類的東西。 – James
你嘗試了什麼?與編寫Windows服務和XML配置相比,檢查DateTime.Now的時間組件是否大於23:00或小於07:00,然後不做某事似乎很基本。 – nvoigt