Сортировка нескольких объектов даты в Swift

#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