2012-03-01 2 views
1

에서 시간 차이를 계산하는 방법 : 버튼이 하나가 현재 시간으로 변경됩니다 라벨을 클릭하면나는 다음과 같은 코드를 사용하여 현재 시간으로 설정이 라벨이 NSDateFormatter

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

버튼입니다 다시 클릭하면 레이블 2가 현재 시간으로 변경되지만 세 번째 레이블을 변경하여이 시간의 차이를 표시 할 수있게하려고합니다. 어떤 도움 /지도도 크게 감사 할 것입니다.

답변

2

[DATE2 timeIntervalSinceDate : 날짜 1] 당신에게 초 단위로 시간 간격을 줄 것이다,하지만 당신은 시간으로 표시 차이를하려는 경우 : 분 다음이 너무 작동합니다.

- (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; 
} 

}

참고 :이 호를 사용하지 않는 경우 다음이 코드에 적절한 자료를 추가해야합니다.

+0

우수합니다. 감사합니다. – TJ15

0
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1]; 
관련 문제