#swift #date #sorting
#swift #Дата #сортировка
Вопрос:
У меня есть три объекта даты. Я хочу знать, какой из них самый старый. Я нашел много информации о том, как сравнивать две даты, но не несколько…
Итак, у меня есть три переменные даты:
var firstDate:Date!
var secondDate:Date!
var thridDate:Date!
и я назначаю им даты:
firstDaten = dateOne
secondDate = dateTwo
thridDate = dateThree
Как я могу узнать в Swift, какая из моих дат самая старая?
Танки для помощи!
Комментарии:
1. Может быть, вам следует удалить свой предыдущий вопрос?
[firstDate, secondDate, thridDate].sorted().prefix(1)
2. irie, подразумеваемый в приведенном ниже ответе Вадиана, поиск самой ранней даты и даты сортировки — это две разные вещи. Используйте
min
, если вам нужна только самая ранняя дата. Используйте толькоsorted
в том случае, если вам действительно нужно отсортировать все даты. Сортировка всего массива требует больших вычислительных затрат, чем просто определение наименьшего значения (хотя, по общему признанию, при работе с таким небольшим количеством записей это вряд ли приведет к заметной разнице в производительности). Итак, сортируйте, если вам нужно, но беритеmin
, если это действительно все, что вас волнует.
Ответ №1:
В Date
соответствии с Comparable
, создайте массив и используйте min()
функцию
let dates = [firstDate, secondDate, thridDate]
let oldest = dates.min()
Примечание:
Нет необходимости объявлять переменную как неявную развернутую необязательную, если значение присваивается сразу после объявления, это компилирует:
let firstDate : Date
firstDate = dateOne