2016-07-23 2 views
0

у меня есть два раза в формате HH:MM как бы я сравнить второй от первого найти, сколько минут осталось, пока не дойдете до первый раз:Найти минут оставшиеся между два раза

пример:

timeOne = 12:01 
timeTwo = 11:32 
output = 29 minutes 

Любая помощь в написании этого вопроса в Swift?

+3

NSDateFormatter, NSCalendar, NSDateComponentsFormatter – jtbandes

+0

Там в большой стручок DateTools, что правильно обрабатывает много времени на основе расчетов – markedwardmurray

ответ

2

NSCalendar может дифф даты легко (при условии, start и end являются NSDate экземпляры

let calendar = NSCalendar.currentCalendar() 
let components = calendar.components(.Minute, fromDate: start, toDate: end, options: []) 

components.minute 

Если вы заинтересованы в получении только отформатированную строку, а не фактическое значение, то контроль NSDateComponentsFormatter:

let formatter = NSDateComponentsFormatter() 
formatter.allowedUnits = .Minute 
formatter.unitsStyle = .SpellOut 
// includesTimeRemainingPhrase gives strings like "T minutes remaining" 

formatter.stringFromDate(start, toDate: end) 

Изменяя unitsStyle, вы можете получить различные изображения, такие как:

"54m" 
"54 minutes" 
"54 min" 
"fifty-four minutes" 
+0

спасибо что работал! Но я не использовал формат NSDate, но я смог его преобразовать и выполнить свой код! Спасибо –

+0

Im получение некоторой проблемы позволяет сказать, что у меня есть мой первый раз (формат NSDATE, но показывающий как строка для u) = "12:58 AM" и "1:05 PM", я делаю calender.components, его возвращает '667' not 7? Помогите? –

2

Вы должны работать с 2 NSDate экземпляров, то вы можете использовать следующий API:

let interval = laterDate.timeIntervalSinceDate(earlierDate) 

возвращает количество секунд, как NSTimeInterval значения. Разделить его на 60 даст вам минут.

Смежные вопросы