1

我是我的应用程序,我有一个 NSMutableArray,每个条目都有一个带有多个键值对的 NSMutableDictionary。其中一对包含条目的日期。对于我的应用程序的一项功能,我需要确定哪些条目彼此之间正好相隔 1 周(即从周日到周日),并将该周每一天的键值对中的数据求和。

我该怎么做呢?

注意:周日到周日是指一般的周日,而不是周日晚上 9 点到周日晚上 9 点。

4

3 回答 3

4

请参阅两个 NSDate 之间的天数

于 2011-03-07T00:28:57.357 回答
3

您可以按日期对条目进行排序(例如按升序)。之后,您基本上可以计算所有后续日期之间的天数差异diff[n] = dayDiff(dates[n], dates[n-1])。因此,对于每一个dates[n],您都可以很快找到一个 7 天后的日期 - 只需diffs从总和n直到到达数组末尾(=> 没有这样的日期)或总和等于 7(=> 你找到它)或总和更大超过 7 (=> 没有这样的日期)。

不要尝试使用毫秒或类似的东西来获得天数的差异。日期比某个参考点的毫秒数要多得多。用于NSCalendar

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *cs = [calendar components:NSDayCalendarUnit 
                                   fromDate:date1
                                     toDate:date2
                                    options:0];
NSInteger diffInDays = cs.days;
于 2011-03-07T01:13:20.263 回答
0

看看使用 NSDateComponents。您可以将日期 A 和 B 都转换为它们的日期部分,然后检查是否有 7 的差异。

于 2011-03-07T01:06:12.623 回答