Вы можете получить текущую дату с помощью календаря, чтобы получить текущий месяц и день от вашей текущей даты.
let date = Date()
let calendar = Calendar.current
var month = 0
var day = 0
Как только вы получите, я создал [String]()
для хранения всех KEYS
, что будет соответствовать вашему словарю. Затем я создал al oop для подсчета дней 1 - 30 и добавления каждой даты в этот массив для вашей справки со словарем. Важно использовать .date(byAdding:...)
, чтобы вы могли учитывать месяцы, которые могут иметь 28, 30 или 31 день.
var datesToPull = [String]()
for futureDay in 1...30{
let toDate = Calendar.current.date(byAdding: .day, value: futureDay, to: date)
month = calendar.component(.month, from: toDate!)
day = calendar.component(.day, from: toDate!)
// We have to format the days to a XX/XX value to handle your key requirements.
datesToPull.append("\(String(format: "%02d", month))/\(String(format: "%02d", day))")
}
, если вы хотите считать сегодня также 1023 *, просто измените свой l oop на этот
for futureDay in 0...30{...
Наконец, чтобы что-то сделать с этими ключами, поместите это внутри вашего tableView(_ cellForRowAt:...)
метода или там, где вам это нужно.
for key in calendarDataSource.keys{
if datesToPull.contains(key){
print("Date Found.")
}
else{
print("No date found.")
}
}
Примечание
Это не сохранит какого-либо порядка. Что не должно иметь значения из-за использования словаря, но на тот случай, если вы не знали.