【发布时间】:2014-08-06 05:45:53
【问题描述】:
我在一个项目中工作,我需要显示当前和过去 6 个月的年份。我正在使用下面的代码来执行此操作。
for (int i=0; i< numberofMonths; i++) {
NSString *index=[NSString stringWithFormat:@"%d",i+1];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.month = - (i+1);
NSDate *date = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];
NSDateComponents *components = [calendar components:NSMonthCalendarUnit|NSYearCalendarUnit fromDate:date]; // Get necessary date
currentYear = [components year];
currentmonth=[components month];
yearstring = [[NSString alloc]initWithFormat:@"%ld",currentYear];
yearstring=[yearstring substringFromIndex:MAX((int)[yearstring length]-2, 0)];
monthName = [[df monthSymbols] objectAtIndex:(currentmonth-1 )];
NSString *string=[NSString stringWithFormat:@"%@, %@",monthName,yearstring];
}
此代码适用于所有月份。但是当我将当前月份设置为一月/二月时。然后它确实给出了数组范围的错误。 请指教
【问题讨论】:
标签: ios iphone nsdate nsdateformatter nscalendar