Надеюсь на помощь в этом. Я пытаюсь выполнить поиск (вперед и назад), чтобы найти следующую дату, которая соответствует дню года
Так, например, у меня есть значение дня 300, я знаю, что мы находимся на 237-м дне этого года (на момент написания этого поста, 25.08.18!), И я хочу искать в обратном направлении, чтобы найти предыдущее вхождение 300-го дня года и форматирование даты из него.
Я уже извлекаю «день года» из даты, используя небольшое расширение даты:
extension Date {
var dayOfYear: Int {
return Calendar.current.ordinality(of: .day, in: .year, for: self)!
}
}
Используя функцию Calendar.nextDate (), я могу искать, чтобы соответствовать '.day', но это, очевидно, день месяца, а не год:
let potentialSartDate = (Calendar.current as NSCalendar).nextDate(after: nowDate, matching: .day, value: dayOfYearValueToMatch, options: [.matchNextTime, .searchBackwards])!
Есть ли у кого-нибудь какие-либо указатели или подходы, как выполнить поиск, подобный этому, построить дату из результата?
Заранее спасибо!
Emile