Я следую решению в посте , как получить массив с 30-минутными временными интервалами между двумя датами swift , но я получаю нулевое значение для date2
в моей следующей функции:
func calculateOpenTimeSlots() {
let formatter = DateFormatter()
formatter.dateFormat = "hh:mm"
let weekday = self.actualWeekday
let openingTime = openingTimeArray[weekday!].openingTime
let closingTime = openingTimeArray[weekday!].closingTime
let date1 = formatter.date(from: openingTime)
let date2 = formatter.date(from: closingTime)
var i = 1
timeSlotArray.removeAll()
while true {
let date = date1?.addingTimeInterval(TimeInterval(i*30*60))
let string = formatter.string(from: date!)
if date! >= date2! {break}
i = i + 1
timeSlotArray.append(string)
}
}
массив:
var openingTimeArray: [(weekday: Int, openingTime: String, closingTime: String)] = [(weekday: 0, openingTime: "10:00", closingTime: "19:00"), (weekday: 1, openingTime: "10:00", closingTime: "19:00"), (weekday: 2, openingTime: "10:00", closingTime: "19:00"), (weekday: 3, openingTime: "10:00", closingTime: "19:00"), (weekday: 4, openingTime: "10:00", closingTime: "19:00"), (weekday: 5, openingTime: "10:00", closingTime: "19:00"), (weekday: 6, openingTime: "10:00", closingTime: "19:00"), (weekday: 7, openingTime: "10:00", closingTime: "19:00")]
openingTime
и closingTime
значения не равны нулю, и они являются правильным значением, но на date1
я получаю полную дату с часом, равным 1 часурано.date1
это 2000-01-01 09:00:00 UTC, но я ожидал, что это будет 10:00.
Я до сих пор не освоил форматирование даты и не понимаю, почему я получаю нольdate2
и неправильный date1
.Любое объяснение, которое укажет мне правильное направление, будет очень полезным, как обычно.Большое спасибо