Хоть я и не настоящий сварщик, могу посоветовать следующее: соберите все интервалы в какую-то таблицу или словарь, и потом в отдельном методе в цикле проверяйте попадание текущего времени в интервалы. Когда попадет, возвращайте из метода значение цвета.
Примерно так:
public class Interval
{
DateTime LeftBound { get; set; }
DateTime RightBound { get; set; }
public Interval(DateTime left, DateTime right)
{
LeftBound = left;
RightBound = right;
}
}
...
List<Interval> intervals = new List<Interval>
{
new Interval(DateTime.Parse("12:00:00"), DateTime.Parse("13:00:00")),
new Interval(DateTime.Parse("14:00:00"), DateTime.Parse("20:00:00"))
};
...
public Color CheckInterval(DateTime now, List<Interval> timeTable)
{
Color color = Color.Green;
foreach (Interval interval in timeTable)
{
if (now > interval.LeftBound && now < interval.RightBound)
{
color = Color.Red;
break;
}
}
return color;
}
...
label1.ForeColor = CheckInterval(DateTime.Now, intervals);
Соедините эти части вместе и должно получиться.
Если кто поумнее предложит исправления — будет круто!