• Как реализовать смену цвета текста по заданным промежуткам времени?

    Хоть я и не настоящий сварщик, могу посоветовать следующее: соберите все интервалы в какую-то таблицу или словарь, и потом в отдельном методе в цикле проверяйте попадание текущего времени в интервалы. Когда попадет, возвращайте из метода значение цвета.

    Примерно так:
    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);

    Соедините эти части вместе и должно получиться.
    Если кто поумнее предложит исправления — будет круто!
    Ответ написан
    5 комментариев