У меня проблемы с получением моего кода для работы. Я пытаюсь создать 30-минутные слоты в Swift, но кажется, что время от времени происходит случайный скачок часа. См. Код ниже:
let calendar = Calendar.current
var hour = 07
var hour2 = 07
var minute = 0
var timeLoop = 1
var startDate = calendar.date(bySettingHour: hour, minute: 0, second: 0, of: editedDate)
var endDate = calendar.date(bySettingHour: hour2, minute: 0, second: 0, of: editedDate)
repeat {
if(timeLoop % 2 == 0){
startDate = calendar.date(bySettingHour: hour2, minute: 30, second: 0, of: editedDate)
endDate = calendar.date(bySettingHour: hour, minute: 0, second: 0, of: editedDate)
}
else {
startDate = calendar.date(bySettingHour: hour2, minute: 0, second: 0, of: editedDate)
endDate = calendar.date(bySettingHour: hour2, minute: 30, second: 0, of: editedDate)
}
if (timeLoop == 1) {
startDate = calendar.date(bySettingHour: hour, minute: 0, second: 0, of: editedDate)
endDate = calendar.date(bySettingHour: hour, minute: 30, second: 0, of: editedDate)
}
let eventDate = EventDate()
eventDate.startDate = startDate!
eventDate.endDate = endDate!
self.suggestedDates.append(eventDate)
self.suggestedDates.sort(by: {$0.startDate < $1.startDate}) //Recheck this
//Only need to add this once for day purposes
if (hour == 07) {
self.allDayDates.append(eventDate)
self.allDayDates.sort(by: {$0.startDate < $1.startDate}) //Recheck this
}
//update hours
hour2 = hour
hour += 1
timeLoop += 1
} while hour <= 21
Это дает следующие результаты 07:00 - 07:30, 07:30 - 08:00, 08:00 - 08:30, 09:30 - 10:00, 10:00 - 10:30, 11:30 - 12:00, 12:00 - 12:30, 13:30 - 14: 00,
Как вы можете видеть, прыжок с 10:30 до 11: 30.