-3

i have one array something like below

_combinedBirthdates(
"03/12/2013",
"03/12/2013",
"08/13/1990",
"12/09/1989",
"02/06",
"09/08",
"03/02/1990",
"08/22/1989",
"03/02",
"05/13",
"10/16",
"07/08",
"08/31/1990",
"04/14/1992",
"12/15/1905",
"08/14/1989",
"10/07/1987",
"07/25",
"07/17/1989",
"03/24/1987",
"07/28/1988",
"01/21/1990",
"10/13"

)

this all are NSString

i am trying to make new array from this which contains days remaining something like below

(days remaining for particular birthdate) (we will compair current date with above date array and we will find out remaining days) _newarray( "125", "100", "65", and till end like this.. )

i am using below code for this

unsigned int unitFlags =  NSDayCalendarUnit;
NSCalendar *currCalendar = [[NSCalendar alloc]
                            initWithCalendarIdentifier:NSGregorianCalendar];


NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSLog(@" currCalendar%@",currCalendar);

NSMutableArray * _newarray = [[NSMutableArray alloc] init];
for (NSString * str in _combinedBirthdates){

    NSDate * toDate = [dateFormatter dateFromString:str];
    NSDateComponents *daysInfo = [currCalendar components:unitFlags fromDate:[NSDate date]  toDate:toDate  options:0];
    int days = [daysInfo day];
    [_newarray addObject:[NSString stringWithFormat:@"%d",days]];
}
NSLog(@" _newarray%@",_newarray);

and this is what i am getting as output when i print _newarray plz help me thank you

_newlymadeArray(
"-1",
"-1",
"-8248",
"-8495",
"-4454",
"-4454",
"-8412",
"-8604",
"-4454",
"-4454",
"-4454",
"-4454",
"-8230",
"-7638",
"-39170",
"-8612",
"-9289",
"-4454",
"-8640",
"-9486",
"-8994",
"-8452",
"-4454",
"-2072",
"-888",
"-8315"
)
Prakash Desai
  • 168
  • 1
  • 9

2 Answers2

0

Please try to use this.I think this one may help you.

NSDateFormatter *tempFormatter = [[NSDateFormatter alloc]init];
    [tempFormatter setDateFormat:@"dd/MM/yyyy"];

    NSString *str = [tempFormatter stringFromDate:@"yourStartDate"];
    NSDate *startdate = [tempFormatter dateFromString:str];

    str = [tempFormatter stringFromDate:@"yourEndDate"];
    NSDate *endDate = [tempFormatter dateFromString:str];

    int i = [startdate timeIntervalSince1970];
    int j = [toDate timeIntervalSince1970];

    double X = j-i;

    int days=(int)((double)X/(3600.0*24.00));
Dharmbir Singh
  • 17,485
  • 5
  • 50
  • 66
0

use below code to compare two dates pass both date in same format

NSDateFormatter *dateformat = [[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"dd/MM/yyyy"];
NSString *StrDate1 = [dateformat stringFromDate:[NSDate date]];
NSString *StrDate2 = [dateformat stringFromDate:date2];
NSDate *firstDate = [dateformat dateFromString:StrDate1];
NSDate *secondDate = [dateformat dateFromString:StrDate2];
NSTimeInterval lastDiff = [firstDate timeIntervalSinceNow];
NSTimeInterval todaysDiff = [secondDate timeIntervalSinceNow];
NSTimeInterval dateDiff = todaysDiff - lastDiff;
int day = dateDiff/(3600*24);

 // days are remaining

use this in for loop you will gate remaining days

Pratik
  • 2,399
  • 17
  • 36