2009-09-15 5 views
0

У меня есть два массива со значениями времени в них в этом формате. 00:00:00, что составляет минуты: секунды: милисекунды. Может ли кто-нибудь показать мне простой способ добавить вычитание этих значений? Я знаю, что могу, если я сломаю их, но я ищу способ сделать это без кода. Я могу получить последние значения, с которыми я хочу работать, как это [myArray lastObject] Я попробовал [[myArray1 lastObject] date] - [[myArray2 lastObject] дата], покупайте, как вы знаете, это не сработало. Любая помощь будет оценена по достоинству.Работа со временем в iPhone

ответ

1

Я предполагаю, что у вас есть 3 значения каждый раз, что-то вроде:

struct TimePoint { 
    int minutes; 
    int seconds; 
    int milliseconds; 
}; 

Если это так, здесь какой-то код для вычисления разницы:

// input is struct TimePoint t1, t2. 
NSTimeInterval time1 = 60 * t1.minutes + t1.seconds + 0.001 * t1.milliseconds; 
NSTimeInterval time2 = 60 * t2.minutes + t2.seconds + 0.001 * t2.milliseconds; 
NSTimeInterval timeDifference = time1 - time2; 

Это звучит, как вы Мы также рассматривали возможность работы с объектами NSDate. Если вы хотите сделать что - предположим, что вы хотите, чтобы узнать, сколько времени прошло от NSDate* date1 до NSDate* date2 - то вы можете использовать следующий метод (docs):

NSTimeInterval timeDiff = [date2 timeIntervalSinceDate:date1]; 
// value is a double in seconds; might be negative if date2 was first 
2

Вы должны использовать NSDate, NDateComponents и NSCalendar. Изучите Date and Time Programming Guide for Cocoa, в котором есть целый раздел о выполнении вычислений на основе календаря, таких как добавление часов или вычитание дней.

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