Если годовщины хранятся в обычных DateTime
структурах, они могут иметь «неправильный» год (т. Е. Год свадьбы или рождения). Я предлагаю написать функцию, которая вычисляет следующую дату для годовщины (на основе текущего дня), например:
static DateTime CalcNext(DateTime anniversary) {
DateTime newDate = new DateTime(DateTime.Now.Year, anniversary.Month, anniversary.Day);
if (newDate < DateTime.Now.Date)
newDate = newDate.AddYear(1);
return newDate;
}
Затем вы продолжаете сортировку дат и получение первых двух значений, как описано в других публикациях:
(from e in anniversaries orderby CalcNext(e.Date) select e).Take(2)