我有一个月份和年份的数组。对于前阵列{2015年1月,2015年2月,2015年6月,2015年9月}。我想得到当月的指数并得到它。如果没有当前月份,那么我想获得即将到来的最近一个月。在上面的例子中,我想得到2015年9月的指数。
非常感谢。
以下是获取当月指数的代码。
if ([titleMonth isEqualToString:currentMonth])
{
indexNumber=[[self.dataByMonth valueForKey:@"title"]indexOfObject:currentMonth];
}
这是从NSDate获得当前月份。
答案 0 :(得分:1)
首先,您需要使用NSDateComponents对象填充数组。特别要注意this method。
例如。为当月创建NSDateComponents。
NSDateComponents *dateComponents = [[NSCalendar currentCalendar]components:(NSCalendarUnitMonth | NSCalendarUnitYear) fromDate:[NSDate date]];
这会起作用吗? 这是一个粗略的示例代码
for(NSDateComponents *components in arrayOfMonths)
{
if(currentMonth.date == components.date)
NSLog(@"current month is on the list");
else if(currentMonth.date < components.date)
{
NSLog(@"this is the next month on the list");
break;
}
}
答案 1 :(得分:0)
如果您的第一个阵列是{2015年1月,2015年2月,2015年5月,2015年9月}。保持所有月份的另一个阵列{2015年1月,2015年2月,2015年3月,2015年12月}。 如果当前月份是6月,那么第1阵列就不存在。获取第二个数组中的下一个元素并检查第一个数组。因此,检查七月是否在第一个数组中并继续此过程,直到找到匹配。所以,你将在2015年9月到达。
不知道这是不是你想要的。