Основная проблема состоит в том, что вы должны знать, какие годы это было на самом деле.
Каждые 4 года високосный год. У вас есть число 42, которое мы можем записать как 10 * 4 + 2, потому что нас интересует период в 4 года. Чтобы обобщить это, его в основном x * 4 + 2 и простой пример, чтобы представить, как это работает, когда x = 1.
Итак, ваш пример почти такой же, как для 6-летнего периода. И мы можем легко найти два примера с разной почасовой ставкой в зависимости от високосного года.
2010 - 2016 will have two leap years (2010 and 2014).
2007 - 2013 will have only one leap year (2010)
Итак, чтобы найти правильное число, вам нужно получить год начала, и вы должны циклически пройти через следующие 42 года. Каждый раз, когда год умножается на 4, вы добавляете 1 дополнительный день. Но имейте в виду, что в случае 100 лет (т.е. двадцать лет из go у нас было 2000) это правило не используется и такое же, как и другие годы.