我如何计算两个日期之间的区别是什么?

我如何计算2010年和(例如)2010 2月3日1月1日之间的天?

--------------解决方案-------------

NSDate *date1 = [NSDate dateWithString:@"2010-01-01 00:00:00 +0000"];
NSDate *date2 = [NSDate dateWithString:@"2010-02-03 00:00:00 +0000"];

NSTimeInterval secondsBetween = [date2 timeIntervalSinceDate:date1];

int numberOfDays = secondsBetween / 86400;

NSLog(@"There are %d days in between the two dates.", numberOfDays);

编辑:

请记住, NSDate对象表示的时间精确时刻,他们没有任何相关的时区信息。 当你将字符串转换为使用,例如一个日期NSDateFormatterNSDateFormatter将来自配置的时区的时间。 因此,两者之间的秒数NSDate对象永远是时区无关。

此外,该文件规定,可可的实施时间不占闰秒,因此,如果您需要这样的精确度,你将需要推出自己的实现。

你可能想使用这样的:

NSDateComponents *components;
NSInteger days;

components = [[NSCalendar currentCalendar] components: NSDayCalendarUnit
fromDate: startDate toDate: endDate options: 0];
days = [components day];

我相信这个方法考虑,如跨越夏令时更改日期的情况。

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // in seconds

其中, date1date2NSDate的。

另外,还要注意的定义NSTimeInterval

typedef double NSTimeInterval;

分类:目标C 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.363 (s). 10 q(s)