Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Objective c 如何从NSDateFormatter计算时间差_Objective C_Xcode - Fatal编程技术网

Objective c 如何从NSDateFormatter计算时间差

Objective c 如何从NSDateFormatter计算时间差,objective-c,xcode,Objective C,Xcode,我使用以下代码将2个标签设置为当前时间: NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"hh:mma"]; time2.text = [dateformatter stringFromDate:[NSDate date]]; [dateformatter release]; labelCo

我使用以下代码将2个标签设置为当前时间:

NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
        [dateformatter setDateFormat:@"hh:mma"];
        time2.text = [dateformatter stringFromDate:[NSDate date]];
        [dateformatter release];
        labelCount++;

单击按钮时,标签1将更改为当前时间,再次单击按钮时,标签2将更改为当前时间,但我希望能够更改第三个标签以显示这些时间之间的差异。任何帮助/指导都将不胜感激。

[date2 TimeIntervalsInceetDate:date1]将提供以秒为单位的时间间隔,但如果您希望将差值显示为小时:分钟,则此方法也适用

NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];
- (IBAction)updateTime:(id)sender {
static NSUInteger labelCount = 0;

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mma"];
NSDate *date1 = nil;
NSDate *date2 = nil;
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents;

switch (labelCount) {
    case 0:
        self.time1.text = [dateFormatter stringFromDate:[NSDate date]];
        labelCount++;
        break;
    case 1:
        self.time2.text = [dateFormatter stringFromDate:[NSDate date]];
        labelCount++;
        break;
    case 2:
        date1 = [dateFormatter dateFromString:self.time1.text];
        date2 = [dateFormatter dateFromString:self.time2.text];
        NSUInteger calendarUnits = NSHourCalendarUnit | NSMinuteCalendarUnit;
        dateComponents = [calendar components:calendarUnits fromDate:date1 toDate:date2 options:0];
        self.time3.text = [NSString stringWithFormat:@"%i:%i", [dateComponents hour], [dateComponents minute]];
        labelCount = 0;
        break;
    default:
        break;
}
}

注意:如果您没有使用arc,那么您需要将适当的版本添加到此代码中