フォルダー、その他のサービスなどをチェックするWindowsサービスを作成しています。これらのいずれかがダウンしている場合、警告テキストメッセージを送信します。ただし、特定の期間 (夜 23 時から朝 7 時まで) にアラート メッセージを受け取ることには関心がありません。
このサービスは、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
は翌日になるため、チェックは機能しません。したがって、理論的には、コードは沈黙期間を 1 日あたり 23.00 から 24.00 として検証するだけです。