誕生日を当月順(8月、9月....7月)に並べました。
現在の日付と誕生日リストの日付の間の日数を計算しました。
ViewDidLoad メソッドで
NSDateFormatter *curdatemonthnoformatter = [[NSDateFormatter alloc] init];
[curdatemonthnoformatter setDateStyle:NSDateFormatterMediumStyle];
[curdatemonthnoformatter setDateFormat:@"dd-MM"];
NSString * curdatemonthnostring = [curdatemonthnoformatter stringFromDate:[NSDate date]];
[curdatemonthnoformatter release];
NSDateFormatter *tempFormatter = [[NSDateFormatter alloc]init];
[tempFormatter setDateFormat:@"dd-MM"];
NSDate *startdate = [tempFormatter dateFromString:curdatemonthnostring];
NSLog(@"%@",startdate);
[tempFormatter release];
NSLog(@"%@",curdatemonthnostring);
for (int val=0; val<[monthlistArray count]; val++)
{
NSMutableArray * dataarraylocal = [[[NSMutableArray alloc]initWithCapacity:0]autorelease];
for (int ival=0; ival<[[monthdataArray objectAtIndex:val]count]; ival++)
{
NSString *birthdatestr=[NSString stringWithFormat:@"%@",[[[monthdataArray objectAtIndex:val]objectAtIndex:ival]objectForKey:@"birthday"]];
NSDate *mybirthdate=[formatter dateFromString:birthdatestr];
NSDateFormatter *birthdatemonthFormatter = [[NSDateFormatter alloc] init];
[birthdatemonthFormatter setDateStyle:NSDateFormatterMediumStyle];
[birthdatemonthFormatter setDateFormat:@"dd-MM"];
NSString *sortmonthstr = [birthdatemonthFormatter stringFromDate:mybirthdate];
NSDateFormatter *tempFormatter1 = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter1 setDateFormat:@"dd-MM"];
NSDate *toDate = [tempFormatter1 dateFromString:sortmonthstr];
[dataarraylocal addObject:toDate];
}
[previouscomparearray addObject:dataarraylocal];
}
NSLog(@"%@",previouscomparearray);
for (int ival=0; ival<[monthlistArray count]; ival++)
{
NSMutableArray *nofdayslocal=[[NSMutableArray alloc]initWithCapacity:0];
for (int jval=0; jval<[[monthdataArray objectAtIndex:ival]count]; jval++)
{
unsigned flags = NSDayCalendarUnit;
NSDateComponents *difference = [[NSCalendar currentCalendar] components:flags fromDate:startdate toDate:[[previouscomparearray objectAtIndex:ival]objectAtIndex:jval] options:0];
int dayDiff = [difference day];
NSLog(@"%d",dayDiff);
[nofdayslocal addObject:[NSNumber numberWithInt:dayDiff]];
}
[comparedatearray addObjectsFromArray:nofdayslocal];
}
NSLog(@"%@",comparedatearray);
出力:
"-8",
"-5",
"-1",
31,
83,
115,
"-220",
"-154",
"-154",
"-130",
"-90",
"-80",
"-73",
"-68",
"-63",
"-44",
"-42"
今年度内で計算しましたが、12月以降は来年を基準に計算したいと思います。
どんなアイデアでも助けてください。