2012-03-01 70 views
1

計算時差我有2個標籤,我使用下面的代碼設置爲當前時間:如何從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 2012-03-22 10:22:40

0
NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];