Как рассчитать количество високосных лет между двумя годами в C #

Есть ли лучший способ рассчитать количество високосных лет между двумя годами. Предположим, у меня есть дата начала и дата окончания.

У меня есть код, но я думаю, что должен быть более элегантный способ.

код вызова:

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 не должны вычисляться, только годы между ними.

Заранее благодарим за помощь.

13
задан Liam 25 February 2019 в 15:09
поделиться