我使用日期时间选择器获取两个NSDate。现在我想计算这两个NSDates之间的天数。如何找到两个NSDates之间的差异。
请给我一些解决方案。
非常感谢。
答案 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))