C# правильное сравнение в for()
Есть два столбика с датами DateTime
. Их нужно сравнить и покрасить в цвет, если значение выше, ниже и тд.
Для конфигурации в будущем, цветов и значений, создал таблицу
|ID|Days|Color |
|1 |14 |green |
|2 | 5 |yellow|
|3 | 0 |gray |
|4 |-1 |red |
конфиругацию загружаю в List<> configList
чтобы потом получить значения и работать с ним.
Суть такова, если разница между днями, больше 14 (из таблицы), приминить цвет зеленый и так далее, если разница между днями -1 и выше - красный. К сожалению результат такой, что всегда приминяется красный.. не пойму, в чем моя логическая ошибка.
for(int i = 0; i <= configList.Count; i++)
{
// Declare two dates
var prevDate = new DateTime(2022, 2, 18);
var today = new DateTime(2022, 1, 28);
//get difference of two dates
var diffOfDates = prevDate - today; //(21)
if(diffOfDate.Days <= configList[i].Days)
{
Color CellColor = ConvertColor<Color>(configList[i].Color);
e.Appearance.BackColor = CellColor;
return;
}
if(diffOfDate.Days >= configList[i].Days)
{
Color CellColor = ConvertColor<Color>(configList[i].Color);
e.Appearance.BackColor = CellColor;
return;
}
}
//Convert String into Color
public T ConvertColor<T>(string text)
{
return (T)TypeDescriptor.GetConverter(typeof(T))
.ConvertFromInvariantString(text);
}