2016-11-23 64 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);