Swift - проверьте, является ли отметка времени вчера, сегодня, завтра или X дней назад

Я пытаюсь решить, как решить, будет ли данная отметка времени встречаться сегодня или +1 / -1 дней. По сути, я хотел бы сделать что-то вроде этого (псевдокод)

IF days_from_today(timestamp) == -1 RETURN 'Yesterday'
ELSE IF days_from_today(timestamp) == 0 RETURN 'Today'
ELSE IF days_from_today(timestamp) == 1 RETURN 'Tomorrow'
ELSE IF days_from_today(timestamp) < 1 RETURN days_from_today(timestamp) + ' days ago'
ELSE RETURN 'In ' + days_from_today(timestamp) + ' ago'

Важно отметить, что он должен быть в Swift, и я борюсь с объектами NSDate / NSCalendar. Я начал с разницы во времени, как это:

let calendar = NSCalendar.currentCalendar()
let date = NSDate(timeIntervalSince1970: Double(timestamp))
let timeDifference = calendar.components([.Second,.Minute,.Day,.Hour],
    fromDate: date, toDate: NSDate(), options: NSCalendarOptions())

Однако сравнивать таким образом нелегко, потому что.Day отличается в зависимости от времени суток и отметки времени. В PHP я бы просто использовал mktime для создания новой даты, основанной на начале дня (т.е.mktime(0,0,0)), но я не уверен в самом простом способе сделать это в Swift.

У кого-нибудь есть хорошая идея о том, как подойти к этому? Возможно, будет лучше расширение NSDate или что-то подобное?

Ответы на вопрос(5)

Ваш ответ на вопрос