Работа со временем в iPhone - PullRequest
0 голосов
/ 15 сентября 2009

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

Ответы [ 2 ]

2 голосов
/ 15 сентября 2009

Вы должны использовать NSDate, NDateComponents и NSCalendar. Изучите Руководство по программированию даты и времени для какао , в котором есть целый раздел о вычислениях на основе календаря, таких как добавление часов или вычитание дней.

1 голос
/ 15 сентября 2009

Я предполагаю, что у вас есть 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...