计算两个时间的差 年龄计算

来源:互联网 发布:mac apowersoft 编辑:程序博客网 时间:2024/05/01 08:17
/** *  计算两个时间的差 * *  @param birthDay 开始计算的日子(生日) *  @param nowDate  计算截止的日子(今天/可以传nil) */+ (NSDateComponents *)componentsDateFrom:(NSDate *)birthDay toDate:(NSDate *)nowDate{    if (!nowDate) {        nowDate = [NSDate date];    }    //用来得到详细的时差    unsigned int unitFlags =  NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; //定义一个NSCalendar对象    NSCalendar *calendar = [NSCalendar currentCalendar];    NSDateComponents *date = [calendar components:unitFlags fromDate:birthDay toDate:nowDate options:0];    if([date year] >0)    {        NSLog(@"%@",[NSString stringWithFormat:(@"%ld-%ld-%ld"),(long)[date year],(long)[date month],(long)[date day]]) ;    }    else if([date month] >0)    {        NSLog(@"%@",[NSString stringWithFormat:(@"0-%ld-%ld"),(long)[date month],(long)[date day]]);    }    else if([date day]>0){        NSLog(@"%@",[NSString stringWithFormat:(@"0-0-%ld"),(long)[date day]]);    }    else {        NSLog(@"%@",@"0-0-0");    }    return date;}

得到 (NSDateComponents *)date 对象之后 就可以直接 [date year]、[date month]、[date day] 来获取相差多少天 也就是我if判断中的代码了

1 0