我有一个包含出生日期的数组,如下所示:
Array(
"11/07/2013",
"07/10/2013",
"20/02/2013"
)
现在我想根据日期是否已过创建一个新数组。在 2013 年写这个问题,如果当前日期已经过去,那么我们将该日期的年份更改为 2014 年。如果还没有过去,那么我们将保持 2013 年的日期。
例如:
NewArray(
"11/07/2013", no change cus this date hasnt passed yet
"07/10/2013", no change same as above
"20/02/2014" **as date has already passed thats why 2014**
我为此使用以下代码
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
NSString *curYear = [dateFormatter stringFromDate:[NSDate date]];
NSString *nextYear = [NSString stringWithFormat: @"%d", ([curYear intValue] + 1)];
for(int i = 0; i < [_newlymadeArray count]; i++)
{
NSString *dateStr = [_newlymadeArray objectAtIndex:i];
NSComparisonResult comResult = [[dateFormatter dateFromString:dateStr] compare: [NSDate date]];
if(comResult == NSOrderedAscending)
{
[dateStr stringByReplacingOccurrencesOfString:curYear withString:nextYear];
[_newlymadeArray replaceObjectAtIndex:i withObject:dateStr];
NSLog(@"_newlymadeArray%@",_newlymadeArray);
}
NSLog(@"_newlymadeArray%@",_newlymadeArray);
然而,这是我在 NSLog 时得到的_newlymadeArray
:
after replacing (
"11/07/2013",
"07/10/2013",
"20/02/2013"
)
在索引 2处,它应该是“20/02/2014”而不是 2013 年的日期。什么可能导致我的问题,我该如何解决?