5

我有两个 NSDates 格式为“h:mm a”作为时间(即上午 6:00 和下午 8:00)。

我试图找出这两次之间的中点是什么时间。

对于上面的示例,上午 6:00 和晚上 8:00 之间的中点为下午 1:00。

但我不知道如何在 iPhone sdk 的 Objective-C 中做到这一点。

任何帮助或建议或代码将不胜感激。

4

2 回答 2

17

也许像下面这样的东西是你所追求的?

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

有关详细信息,请参阅NSDate 类参考

于 2011-04-02T04:27:43.700 回答
2

将时间转换为时间间隔,平均两个数字,然后将其转换回 NSDate 对象。

假设您的两次是 NSDate 的实例,可能如下所示:

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

NSDate *avgTime = [NSDate dateWithTimeIntervalSince1970:(intA + intB) / 2.0];
于 2011-04-02T04:29:04.057 回答