Я хочу отсортировать массив раз в порядке возрастания с 00:00 -> 23:59 в Swift 4. У моего приложения нет ссылок на календарь, так как он используется для регистрации времени будильника с помощью внешних аппаратных часов. как очень простой сигнал тревоги, который просто срабатывает с 00:00 -> 23:59, затем оборачивается.
Не уверен, что это лучший подход, но я пробовал следующий код, основанный на Сортировка объектов в массиве по дате
но я не могу заставить его работать только со временем. (Дата) объект не может инициализироваться. Он не любит изменения (dateStyle) и (timeStyle) по сравнению с первоначальным примером. Код ниже:
let testArray = ["23:59", "01:23", "18:23", "04:42", "00:00"]
var convertedArray: [Date] = []
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm"
dateFormatter.dateStyle = .none
dateFormatter.timeStyle = .short
for dat in testArray {
let date = dateFormatter.date(from: dat)
if let date = date {
convertedArray.append(date)
}
}
var ready = convertedArray.sorted(by: { $0.compare($1) == .orderedAscending })
print(ready)
При работе функции печати следует печатать отсортированный массив в следующем порядке:
[00:00, 01:23, 04:42, 18:23, 23:59]
У кого-нибудь есть идеи?