Если вы действительно хотите выполнить это в службе Windows, вам следует настроить объект System.Threading.Timer
с обратным вызовом, который подтверждает ваши временные рамки.
Таймер можно настроить на запуск каждые 24 часа (86 400секунд)
protected override void OnStart(string[] args)
{
// this will start a timer when your service starts
// the 3rd argument will run DoStuff(object) immediately and again in 24 hours
timer = new System.Threading.Timer(new System.Threading.TimerCallback(DoStuff), null, 0, 86400 * 1000);
}
Затем в обратном вызове DoStuff
проверьте время, день и т. д.
public static void DoStuff(object objectState)
{
DateTime now = DateTime.Now;
if(now.DayOfWeek != DayOfWeek.Saturday && now.DayOfWeek != DayOfWeek.Sunday)
{
// do some stuff
}
}