Средняя точка Objective-C между двумя временами - PullRequest
5 голосов
/ 02 апреля 2011

У меня есть две NSDate, отформатированные как «ч: мм а» как время (то есть 6:00 AM и 8:00 PM).

Я пытаюсь выяснить, в какое время находится средняя точка между этими двумя моментами.

Для приведенного выше примера средняя точка между 6:00 и 20:00 будет 13:00.

Но я не знаю, как это сделать в target-C для iPhone SDK.

Любая помощь или предложения или код будет принята с благодарностью.

Ответы [ 2 ]

17 голосов
/ 02 апреля 2011

Возможно, вам нужно что-то вроде следующего:

// Assuming you have two NSDate instances: start and end.
NSTimeInterval difference = [end timeIntervalSinceDate:start];
NSDate *middle = [NSDate dateWithTimeInterval:difference / 2 sinceDate:start];

См. Ссылка на класс NSDate для получения дополнительной информации.

2 голосов
/ 02 апреля 2011

Преобразование временного интервала, усреднение двух чисел, затем преобразование их обратно в объект NSDate.

Если предположить, что два раза являются экземплярами NSDate, это может выглядеть следующим образом:

NSTimeInterval intA = [timeA timeIntervalSince1970];
NSTimeInterval intB = [timeB timeIntervalSince1970];

NSDate *avgTime = [NSDate dateWithTimeIntervalSince1970:(intA + intB) / 2.0];
...