我是我的应用程序,我有一个 NSMutableArray,每个条目都有一个带有多个键值对的 NSMutableDictionary。其中一对包含条目的日期。对于我的应用程序的一项功能,我需要确定哪些条目彼此之间正好相隔 1 周(即从周日到周日),并将该周每一天的键值对中的数据求和。
我该怎么做呢?
注意:周日到周日是指一般的周日,而不是周日晚上 9 点到周日晚上 9 点。
我是我的应用程序,我有一个 NSMutableArray,每个条目都有一个带有多个键值对的 NSMutableDictionary。其中一对包含条目的日期。对于我的应用程序的一项功能,我需要确定哪些条目彼此之间正好相隔 1 周(即从周日到周日),并将该周每一天的键值对中的数据求和。
我该怎么做呢?
注意:周日到周日是指一般的周日,而不是周日晚上 9 点到周日晚上 9 点。
您可以按日期对条目进行排序(例如按升序)。之后,您基本上可以计算所有后续日期之间的天数差异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;
看看使用 NSDateComponents。您可以将日期 A 和 B 都转换为它们的日期部分,然后检查是否有 7 的差异。