我正在根据日期生成图表。用户将选择开始日期和结束日期。
例如,如果开始日期是3/10/13,结束日期是15/10/13。我想按周分组日期。
所以分组应该像3/10/2013 - 5/10 / 13,6 / 10/13 - 12/10 / 13,13 / 10/13 - 15/10/13。
使用 nsdatecomponents 我可以找到2个日期之间的差异。
NSDateComponents *componentsToSubtract = [[NSCalendar currentCalendar] components:NSWeekCalendarUnit fromDate:stDate toDate:endDate options:0];
但是如何按周分组呢?
答案 0 :(得分:1)
我建议您选择一个开始日期然后只需添加7天,并在第一周之间抓取所有内容,在日期中添加天数,并在第二周的这些日期之间抓取所有内容,依此类推。
如果您总是希望从星期日开始(或者可能是星期一),请使用日期组件来选择星期日的日期:
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSYearForWeekOfYearCalendarUnit |NSYearCalendarUnit|NSMonthCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:yourApproximateStartingDate];
[components setWeekday:1]; // 1 == Sunday
yourStartingDate = [calendar dateFromComponents:components];
NSTimeInterval sevenDays = 7 * 24 * 60 * 60;
NSDate *secondDate = [yourStartingDate dateByAddingTimeInterval:sevenDays];
然后您可以使用比较器查看该范围内的日期。