0

誕生日を当月順(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月以降は来年を基準に計算したいと思います。

どんなアイデアでも助けてください。

4

1 に答える 1