Я писал несколько тестовых примеров для некоторых методов удобства, которые я обновляю, и решил посмотреть, что произойдет, если бы я использовал LocalDate
isLeapYear()
на год 0. Насколько я понимаю, год 0 никогда не существовал: за год до 1 года был 1 до н.э. (Это основано на статье, которую я прочитал много лет назад, чей источник, о котором я давно забыл.) К большому удивлению, мой тест показал, что год 0 високосный год!
Я понимаю, что класс java.time.LocalDate
реализует ISO-8601, но действительно ли ISO-8601 указывает, что год 0 существует? Я не хочу верить, что люди, которые тестировали LocalDate
, пропустили бы это в качестве тестового примера, но я также неохотно полагаю, что такой международный стандарт, как ISO-8601, допустил бы такую очевидную ошибку.
Другая возможность заключается в том, что статья, которую я прочитал, была просто ошибочной. (Или это было правильно, но позже переосмыслено).
Это не очень важно, но мне любопытно узнать, где ошибка: ISO-8601, класс Java LocalDate
или мое понимание того, как отсчитывается время.