Я строю представление календаря, которое я хочу быть агности c года, просто перечислите все возможные даты, которые могут произойти за месяц. Т.е. показать максимальное количество дней в календаре, например 29 февраля. Из этого ответа я знаю, что есть другие календарные системы, в которых также есть високосные дни, поэтому мне интересно, как я могу определить, есть ли у календаря високосный день, независимо от календарной системы или года , Любая помощь будет принята с благодарностью! Вот то, что у меня есть в настоящее время, чтобы получить количество дней в месяце:
func days(in month: Int) -> Int {
let components = DateComponents(month: month+1, day: -1)
let lastDay = Calendar.current.date(from: components)!
return Calendar.current.dateComponents([.day], from: lastDay).day!+1
}
Это прекрасно работает, но основано на текущем году, который может не быть високосным.
Я видел isLeapMonth
, но, похоже, это не работает для запроса так же, как .day
.