两个NSDates之间的差异

时间:2011-08-22 13:01:20

标签: iphone objective-c ios

我使用日期时间选择器获取两个NSDate。现在我想计算这两个NSDates之间的天数。如何找到两个NSDates之间的差异。

请给我一些解决方案。

非常感谢。

3 个答案:

答案 0 :(得分:56)

这里有一个小宝石 - 不仅仅是几天:

// Assuming you have fistDate and secondDate

unsigned int unitFlags = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitDay | NSCalendarUnitMonth;

NSDateComponents *conversionInfo = [currCalendar components:unitFlags fromDate:fistDate   toDate:secondDate  options:0];

int months = [conversionInfo month];
int days = [conversionInfo day];
int hours = [conversionInfo hour];
int minutes = [conversionInfo minute];

这非常有用 - 尤其是在格式化字符串时,例如:

[NSString stringWithFormat:@"%d months , %d days, %d hours, %d min", months, days, hours, minutes];

快乐编码:)

答案 1 :(得分:24)

NSDate引用是一个很棒的小文档: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate
如果你想要时间间隔差异,

就是你要找的东西。

几天(因为不是每天都有相同的分钟数,小时数)你想看到Martins在下面回答并使用NSDateComponents和[NSCalendar currentCalendar]

答案 2 :(得分:1)

这是一个Swift实现(我在调试网络请求和JSON解析等内容时一直使用它):

let date1 = NSDate()

// do some long running task

let date2 = NSDate()
print(date2.timeIntervalSinceDate(date1))

// you can also do this in one line, of course:
print(NSDate().timeIntervalSinceDate(date1))
相关问题