iosnsdate

How to find days remaining in birthdate


I want to find the remaining days from array of birthdates. I'm using following code for it

for(int i =0;i<_convertedBdates.count;i++){
         
    NSDateFormatter *tempFormatter = [[NSDateFormatter alloc]init];
    [tempFormatter setDateFormat:@"dd/MM/YYYY"];
    NSDate *firstdate = [tempFormatter dateFromString:[_convertedBdates objectAtIndex:i]];
     
   
    NSString *curYear = [tempFormatter stringFromDate:[NSDate date]];
    NSDate *secondDate = [tempFormatter dateFromString:curYear];
    NSTimeInterval lastDiff = [firstdate timeIntervalSinceNow];
    NSTimeInterval todaysDiff = [secondDate timeIntervalSinceNow];
    NSTimeInterval dateDiff = lastDiff  - todaysDiff;
    int day = dateDiff/(3600*24);

    NSLog(@" _newlymadeArray %@",[_convertedBdates objectAtIndex:i]);

    NSLog(@" days %d",day);
    [_daysremaining addObject:[NSString stringWithFormat:@"%d",day] ];
    }
    NSLog(@" days %@",_daysremaining);

What am I doing wrong, why am I not getting correct days?


Solution

  • for(int i =0;i<_convertedBdates.count;i++){
        NSDateFormatter *tempFormatter = [[NSDateFormatter alloc]init];
        [tempFormatter setDateFormat:@"dd/MM/YYYY"];
        NSDate *firstdate = [tempFormatter dateFromString:[_convertedBdates objectAtIndex:i]];
    
        NSString *curYear = [tempFormatter stringFromDate:[NSDate date]];
        NSDate *secondDate = [tempFormatter dateFromString:curYear];
        NSTimeInterval lastDiff = [firstdate timeIntervalSinceNow];
        NSTimeInterval todaysDiff = [secondDate timeIntervalSinceNow];
        NSTimeInterval dateDiff = lastDiff  - todaysDiff;
        int day = dateDiff/(3600*24);
        day = day -1;
        NSLog(@" _newlymadeArray %@",[_convertedBdates objectAtIndex:i]);
    
        NSLog(@" days %d",day);
        [_daysremaining addObject:[NSString stringWithFormat:@"%d",day] ];
    }
    NSLog(@" days %@",_daysremaining);