Я столкнулся с подобной ситуацией, когда мне пришлось разработать сервис, который делал бы что-то только во время торговли, то есть с 11:00 до 15:00 ежедневно в этом конкретном случае.Это оставалось бы без дела остаток дня.Я делюсь тем, что я сделал в моем случае.Я не уверен, будет ли это полезно для вас, но я надеюсь, что это будет.
Две переменные, поддерживающие время начала и время окончания
TimeSpan StartingTime = new TimeSpan(
Int32.Parse(
ConfigurationManager
.AppSettings["StartingTimeHour"]),
Int32.Parse(
ConfigurationManager
.AppSettings["StartingTimeMinute"]), 0);
TimeSpan EndingTime = new TimeSpan(
Int32.Parse(
ConfigurationManager
.AppSettings["EndingTimeHour"]),
Int32.Parse(
ConfigurationManager
.AppSettings["EndingTimeMinute"]), 0);
//Starting time and Ending time may change in future. So I used app.config
//instead of fixing them to (11,0,0) and (15,0,0) respectively
Метод проверкивремя торговли
public bool TradingTime()
{
TimeSpan CurrentTime = DateTime.Now.TimeOfDay;
return ((CurrentTime > StartingTime) && (CurrentTime < EndingTime));
}
Тогда, где необходимо проверить время и выполнить что-то в зависимости от этого:
while (TradingTime())
{
//do whatever required
}