计算日期范围内的周数

时间:2012-12-13 20:07:00

标签: objective-c date nsdate

我需要对一年中持续的日志进行一些基于时间的统计, 我需要做的就是在确定的日期范围内计算(太阳能)周数。

即。我需要计算2011年8月1日到2012年9月3日之间已经发生了多少周。以及类似的事情。

我已经有了计算两个日期之间的天数然后除以7的想法,但这并不能算出我可以在几周之间的事实,在这种情况下,价值不正确/精确

之前有人遇到过类似的问题吗?

3 个答案:

答案 0 :(得分:6)

我假设您在NSDates(date1和date2)中有两个日期。然后拨打

NSCalendar *calendar = [NSCalendar currentCalendar];
//declare your unitFlags
int unitFlags = NSWeekCalendarUnit;

NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:date1  toDate:date2 options:0];

int weeksInBetween = [dateComponents week];

希望有所帮助

答案 1 :(得分:1)

NSCalendar是您应该参加的课程。它允许您使用components:fromDate:toDate:options:方法从两个日期获取NSDateComponents,同时为您处理所有混乱的时间。

答案 2 :(得分:0)

NSDateComponents *difference = [[NSCalendar currentCalendar] components:NSCalendarUnitDay
                                                               fromDate:startDate]
                                                                 toDate:endDate]
                                                                options:0];
NSInteger weeksDiffCount = (((NSInteger)[difference day])/7);

希望它有所帮助。