Как я могу разделить по дате? - PullRequest
0 голосов
/ 24 октября 2019

У меня проблема с датой, я хочу разделить среднюю дату в матрице, например [[элементы с dateA], [элементы с dateB], [элементы с dateC]]

     [Element(pdg: 255, typeMovement: "0", dateCreated: "1571932451.33648"), 
       Element(pdg: 25, typeMovement: "0", dateCreated: "1071933301.0081"), 
Element(pdg: 5, typeMovement: "0", dateCreated: "1571933459.64595"), 
        Element(pdg: 89, typeMovement: "0", dateCreated: "1571935759.69358")]

Как я могу отделиться?

помочь мне с SQL или программирования

1 Ответ

0 голосов
/ 25 октября 2019

Создайте расширение для вашего типа Element, которое возвращает свойство dateCreated в качестве даты (вы также можете реализовать это как вычисляемое свойство)

extension Element {
    func createdAsDate() -> Date? {
        if let time = Double(self.dateCreated) {
            return Date(timeIntervalSince1970: time)
        }
        return nil
    }
}

Затем вы можете, например, использовать эту функцию, чтобы получитьвсе даты, подобные этой

let dates = elements.compactMap {$0.createdAsDate()}

или для группировки элементов по дате

let elementsByDate = elements.reduce(into: [:]) { 
    $0[$1.createdAsDate(), default: []].append($1)
}

Если вы хотите работать только с частями даты, вы можете использовать DateFormatter или DateComponentsсм. например этот ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...