您的位置:首页 > 其它

的天数,以一个日期与当前日期的

2015-08-22 20:17 405 查看
//返回0
当天,1昨天。2前天,以此类推

//之前那样用时间差来整除一天的秒数,计算出来的天数有误差

+ (int)getDaysFromAnotherDay:(longlong)date {//date是时间戳

// return [self getDaysFrom1970:date] - [self getDaysFrom1970:[[NSDate date] timeIntervalSince1970]];

// NSDateComponents *comps = [[NSDateComponents alloc] init];

// [comps setDay:[NSDateUtils getDay:date]];

// [comps setMonth:[NSDateUtils getMonth:date]];

// [comps setYear:[NSDateUtils getYear:date]];

// NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

// NSDate *endDate = [[NSDate alloc] init];

// NSDate *startDate = [gregorian dateFromComponents:comps];

// [comps release];

// unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;

// NSDateComponents *comps2 = [gregorian components:unitFlags fromDate:startDate toDate:endDate options:0];

// [gregorian release];

// [endDate release];

// int days = [comps2 day];

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

[dateFormatter
setDateFormat:@"yyyy-MM-dd"];

[dateFormatter setCalendar: [NSCalendar
autoupdatingCurrentCalendar]];

NSDate *today = [dateFormatter
dateFromString:[dateFormatter stringFromDate:[NSDate
date]]];

NSDate *startDate = [dateFormatter
dateFromString:[NSDateUtils
getyyyyMMddDate:date]];

NSDate *formatterStartDate = [dateFormatter
dateFromString:[dateFormatter stringFromDate:startDate]];

NSTimeInterval interval = [today
timeIntervalSinceDate:formatterStartDate];

NSInteger days = ((NSInteger)interval)/(3600*24);

return days;

}

+ (int)getYear:(longlong)date {

return [[selfgetNSDateComponents:date]year];

}

+ (int)getMonth:(longlong)date {

return [[selfgetNSDateComponents:date]month];

}

+ (int)getDay:(longlong)date {

return [[selfgetNSDateComponents:date]day];

}

+ (NSDateComponents *)getNSDateComponents:(longlong)date {

NSInteger unitFlags =NSYearCalendarUnit |
NSMonthCalendarUnit |NSDayCalendarUnit |
NSWeekdayCalendarUnit |NSHourCalendarUnit |
NSMinuteCalendarUnit |NSSecondCalendarUnit;

NSDateComponents *comps = [[selfshareNSCalendar]components:unitFlags
fromDate:[NSDatedateWithTimeIntervalSince1970:date]];

return comps;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: