Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标-C两次之间的中点_Iphone_Objective C_Ios4_Nsdate_Nscalendar - Fatal编程技术网

Iphone 目标-C两次之间的中点

Iphone 目标-C两次之间的中点,iphone,objective-c,ios4,nsdate,nscalendar,Iphone,Objective C,Ios4,Nsdate,Nscalendar,我有两个格式为“h:mm a”的日期作为时间(即上午6:00和晚上8:00) 我试图找出这两次之间的中点是什么时间 对于上面的示例,上午6:00到晚上8:00之间的中点为下午1:00 但我不知道如何在objective-C中为iPhone sdk实现这一点 如果您有任何帮助、建议或代码,我们将不胜感激。您想要的可能是以下内容 // Assuming you have two NSDate instances: start and end. NSTimeInterval difference =

我有两个格式为“h:mm a”的日期作为时间(即上午6:00和晚上8:00)

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

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

但我不知道如何在objective-C中为iPhone sdk实现这一点


如果您有任何帮助、建议或代码,我们将不胜感激。

您想要的可能是以下内容

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

有关详细信息,请参阅。

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

假设您的两个时间是NSDate的实例,则可能如下所示:

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

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