以下のような生年月日を含む配列があります。
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では、2013 年の日付ではなく「20/02/2014」である必要があります。問題の原因は何ですか?どうすれば解決できますか?