2016-11-23 115 views
0

我正在使用以下方法獲取日期時間差異在幾分鐘內,它給我的負面價值。日期在ios的時間差異在幾分鐘內

我使用下面的代碼:

NSCalendar *gregorian = [[NSCalendar alloc] 
         initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 

NSUInteger unitFlags = NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitMinute; 

NSDateComponents *components = [gregorian components:unitFlags 
              fromDate:dt2 
               toDate:dt1 options:0]; 
NSInteger months = [components month]; 
NSInteger days = [components day]; 
NSInteger minutes = [components minute]; 

NSLog(@"months %ld",(long)months); 
NSLog(@"days %ld",(long)days); 
NSLog(@"minutes %ld",(long)minutes); 

int res = (int)minutes; 
NSLog(@"int minutes %d",res); 

return res; 

我想要計算如下分鐘日期這兩者之間的區別:

  • 日期1:2016年11月23日7時39分44秒+0000
  • 日期2:2016年11月23日8點13分44秒+0000

結果我得到-34

+0

return abs(res); – Darshana

回答

0

fromDate將包含一個較早的日期和toDate將包含日後在NSDateComponents你路過它錯誤地改變這種

NSDateComponents *components = [gregorian components:unitFlags 
              fromDate:dt2 
               toDate:dt1 options:0]; 

這個

NSDateComponents *components = [gregorian components:unitFlags 
              fromDate:dt1 
               toDate:dt2 options:0]; 
1

你需要用它來取代:

NSDateComponents *components = [gregorian components:unitFlags 
              fromDate:dt1 
               toDate:dt2 options:0]; 
0

如果你不知道whi ch date是前者,只是返回差異的絕對值。這總會給你帶來正面的價值。

return abs(res);