Я бы просто использовал цикл цветов, беря модуль года, для скольких цветов вы хотите использовать:
public static Color GetColorFromYear(int year)
{
var colors = new Color[] { Color.Red, Color.Yellow, Color.Green, ... };
return colors[year % colors.Length];
}
Если вы хотите создать некоторую радугу цветов, вы можете использоватьпоследовательность циклов с Color.FromArgb
для генерации градиента цветов.Это можно адаптировать к различным уровням градиентов или различным цветовым схемам, изменяя параметры цикла for и различные компоненты красного, зеленого и синего.
var colors = new List<Color>();
// red to green
for (int i = 10; i <= 250; i += 30)
colors.Add(Color.FromArgb(255 - i, i, 0))
// green to blue
for (int i = 10; i <= 250; i += 30)
colors.Add(Color.FromArgb(0, 255 - i, i))
// blue to red
for (int i = 10; i <= 250; i += 30)
colors.Add(Color.FromArgb(i, 0, 255 - i))