У меня есть два раза и в формате Строка:Сравнение AM и PM (NSDate)
timeOne = "12:58 AM"
timeTwo = "1:05 PM"
преобразовать их в NSDate как этот
func convertTime(tim: String) -> NSDate{
let strDate = tim
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm a"
//converts into NSDate so we can find the time remaining
return (dateFormatter.dateFromString(strDate))!
}
let tOne = convertTime(timeOne)
let tTwo = convertTime(timeTwo)
превращающего тону и tTwo выводит меня
tOne = 2000-01-01 00:58:00 +0000
tTwo = 2000-01-01 12:05:00 +0000
Я сравниваю два раза, но я хочу, чтобы он возвращал 7 минут, тогда как im получал '667' Треска е сравнить это:
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Minute, fromDate: tOne, toDate: tTwo, options: [])
print(components)
Это печатает
667
Однако это работает, если оба раза одни и те же AM или PM Что я имею в виду то, что позволяет сказать
tOne = "1:06 PM"
tTwo = "1:15 PM"
Выполнение кода сравнения успешно завершает «9»
Какова ценность 'tOne' и' tTwo' в вашем примере? – Larme
Я думаю, что вы ошибаетесь в использовании вами 00:00 - 12:58 утра, имеет смысл только 00:58, а не 12:58, что было бы п.м. = * post meridian * - т. е. «после полудня». Поэтому это время составляет 11 часов 7 минут = 667 минут. – Grimxn
Я отредактировал его и проверил значение –