我使用以下方法获得日期时间差,以分钟为单位给出负值。
我正在使用以下代码:
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;
我想在几分钟内计算这两个日期之间的差异:
结果我得到-34
。
答案 0 :(得分:1)
您需要替换为:
NSDateComponents *components = [gregorian components:unitFlags
fromDate:dt1
toDate:dt2 options:0];
答案 1 :(得分: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];
答案 2 :(得分:0)
如果您不知道哪个日期是前者,只需返回差异的绝对值。这总能给你带来正面的价值。
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
if ([webView isEqual:_viewWebDescription])
{
CGFloat height= webView.scrollView.contentSize.height;
CGRect frameWebView=_viewWebDescription.frame;
if (_viewWebDescription.frame.origin.y + height >= 745)
{
height= 745 - _viewWebDescription.frame.origin.y;
}
frameWebView.size.height=height;
_viewWebDescription.frame= frameWebView;
}
}