Как поменять цвет label сегодняшней даты? C#

Как поменять цвет label сегодняшней даты?

Пример.. сегодня 01.04.2022 - то лейбл с числом (01) становится зелёным (цвет), потом завтра - белым, а число 2 - уже зелёным.

То есть по нынешней дате лейблы с числом становятся определённым цветом.


Ответы (1 шт):

Автор решения: Yotic

Положите код в ваш Load.
Есть 3 способа. (Их 4, но формулу для 4 я потерял ;( )
Первый - через время:

long now = DateTime.Now.Ticks / 1000 / 60;
Color todayColor = Color.FromArgb((int)(now / 86400 % 10 * 25.5), now / 3600 % 60, now / 60 % 60); //Или делать через int структуру, но там сложнее логика

Но тогда это больше будет похоже на рандомный цвет при запуске.

Второй - через словарь дат и цветов к ним:

Dictionary<byte, Color> dayColors = new Dictionary<byte, Color>()
{
    {0, Color.Green}, { 1, Color.Black} //...
};
byte day = (byte)DateTime.Now.Day;
Color todayColor = dayColors[day];

Третий - через Enum Color:

byte day = (byte)(DateTime.Now.Day + DateTime.Now.Hour);
Array colors = Enum.GetValues(typeof(Color));
Color todayColor = (Color)colors.GetValue(day % colors.Length);
→ Ссылка