Objective-C中间点两次

时间:2011-04-02 04:21:54

标签: iphone objective-c ios4 nsdate nscalendar

我有两个NSDate格式为“h:mm a”作为时间(即早上6点和晚上8点)。

我试图找出这两次中间点的时间。

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

但是我不知道如何在Objective-C中为iPhone sdk做这个。

非常感谢任何帮助或建议或代码。

2 个答案:

答案 0 :(得分:17)

或许类似以下内容的是您所追求的内容?

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

有关详细信息,请参阅NSDate Class Reference

答案 1 :(得分:2)

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

假设你的两次是NSDate的实例,那可能是这样的:

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

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