2013-03-13 109 views
-3

的阵列我有一个数组类似下面找出剩余天数从日期

_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" 

这一切都是NSString的

我想从这个,这使得新的数组包含天剩下下面的东西

(特定出生日期剩余的天数) (我们将比较当前日期与上面的日期数组,我们将f IND出剩余天数) _newarray( “125”, “100”, “65”,和 直到结束这样的.. )

我使用下面码本

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); 

这就是我得到的输出当我打印_newarray plz帮助我感谢你

_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" 
) 
+0

我不能让重量ü真正想要的: ( – iPatel 2013-03-13 05:08:40

+0

天重新为特定的出生日期 – 2013-03-13 05:10:39

+1

我认为这是解决在这个问题'http:// stackoverflow.com/questions/15358210/how-to-make-another-array-containing-number-of-days-remain' – 2013-03-13 05:11:55

回答

0

请尽量使用this.I觉得这个可以帮助你。

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)); 
+0

当我尝试打印INT天,那么这是我得到单步直到退出功能objc_msgSend, 它没有行号信息。 – 2013-03-13 06:10:23

+0

非常感谢你,我从你的风格得到了答案 – 2013-03-13 06:18:36

+0

你最欢迎亲爱的... – 2013-03-13 07:40:28

0

使用下面的代码来比较两个日期同时通过日期相同的格式

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 

使用这种在for循环,你会门剩下的日子

+0

当我尝试诠释天天然后这是我得到单步直到退出功能objc_msgSend, 其中没有行号信息。 – 2013-03-13 06:14:15

+0

非常感谢你我回复了你的风格 – 2013-03-13 06:20:17

+0

你是最受欢迎的 – Pratik 2013-03-13 06:32:05