Expression returns false even though it should return true
Hi, I'm trying to check if a date is before now or after NOW. While debugging i can see that the expression doesn't return true even though it should.

.Planned here?
.PlannedList<int> indexestoremove = new List<int>();
List<FlightData> data = GetData();
if(data == null)
{
return null;
}
for (int y = 0; y < data.Count; y++)
{
if (data[y].Planned < DateTime.Now)
{
if (data[y].Estimated == null || data[y].Estimated < DateTime.Now || data[y].Planned.Date > DateTime.Now)
{
indexestoremove.Add(y);
}
}
}
foreach (var item in indexestoremove)
{
data.RemoveAt(item);
}