Есть ли лучший способ рассчитать количество високосных лет между двумя годами. Предположим, у меня есть дата начала и дата окончания.
У меня есть код, но я думаю, что должен быть более элегантный способ.
код вызова:
var numberOfLeapYears = NumberOfLeapYears(startDate.Year + 1, endDate.Year - 1);
сама функция:
private static int NumberOfLeapYears(int startYear, int endYear)
{
var counter = 0;
for (var year = startYear; year <= endYear; year++)
counter += DateTime.IsLeapYear(year) ? 1 : 0;
return counter;
}
Итак, если у меня есть startDate = "16.10.2006"
и endDate = "18.04.2004"
В результате у меня должен быть только 1 високосный год (2000). Другими словами, год startDate и год endDate не должны вычисляться, только годы между ними.
Заранее благодарим за помощь.