【发布时间】:2013-12-16 07:47:50
【问题描述】:
目前我可以获得一周的开始日期和结束日期,但我想获取整周的日期并将其放入数组中。我使用 + 1 来计算日期,但如果有跨月,它会返回错误的结果。
这是我的代码:
-(NSArray *) getWorkWeekDays:(NSDate *)date {
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSArray *period = [self getWorkWeekPeriod:date];//This function will return the begin and end date of week based on the "date" parameter. return 2 Object
NSMutableArray *weekDays = [[NSMutableArray alloc] init];
NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit |
NSWeekdayCalendarUnit |
NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *bgnComps = [gregorian components:unitFlags fromDate:period[0]]
int bgnDay = [bgnComps day];
NSString *firstDay = [NSString stringWithFormat:@"%d",bgnDay];
[weekDays addObject:firstDay];
for (int i = 1; i <= 6 ;i++) {
[ bgnComps setDay :([ bgnComps day ] + 1 )];
int nextDay = [bgnComps day];
NSString *day = [NSString stringWithFormat:@"%d",nextDay];
[weekDays addObject:day];
}
return weekDays;}
//在这种情况下,当我将 2013/11/25 作为开始日期时,我会得到 2013/11/25 2013/11/26 2013/11/27 2013/11/28 2013/11/29 2013/11/30 2013/11/31
【问题讨论】:
标签: ios objective-c cocoa-touch nsdate