下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
返回x分钟前/x小时前/昨天/x天前/x个月前/x年前
- (Nsstring *)timeInfo { return [NSDate timeInfoWithDate:self]; } + (Nsstring *)timeInfoWithDate:(NSDate *)date { return [self timeInfoWithDateString:[self stringWithDate:date format:[self ymdHmsFormat]]]; } + (Nsstring *)timeInfoWithDateString:(Nsstring *)dateString { NSDate *date = [self dateWithString:dateString format:[self ymdHmsFormat]]; NSDate *curDate = [NSDate date]; NSTimeInterval time = -[date timeIntervalSinceDate:curDate]; int month = (int)([curDate month] - [date month]); int year = (int)([curDate year] - [date year]); int day = (int)([curDate day] - [date day]); NSTimeInterval retTime = 1.0; if (time < 3600) { // 小于一小时 retTime = time / 60; retTime = retTime <= 0.0 ? 1.0 : retTime; return [Nsstring stringWithFormat:@"%.0f分钟前",retTime]; } else if (time < 33600 * 24) { // 小于一天,也就是今天 retTime = time / 3600; retTime = retTime <= 0.0 ? 1.0 : retTime; return [Nsstring stringWithFormat:@"%.0f小时前",retTime]; } else if (time < 33600 * 224 * 2) { return @"昨天"; } // 第一个条件是同年,且相隔时间在一个月内 // 第二个条件是隔年,对于隔年,只能是去年12月与今年1月这种情况 else if ((abs(year) == 0 && abs(month) <= 1) || (abs(year) == 1 && [curDate month] == 1 && [date month] == 12)) { int retDay = 0; if (year == 0) { // 同年 if (month == 0) { // 同月 retDay = day; } } if (retDay <= 0) { // 获取发布日期中,该月有多少天 int totalDays = (int)[self daysInMonth:date month:[date month]]; // 当前天数 + (发布日期月中的总天数-发布日期月中发布日,即等于距离今天的天数) retDay = (int)[curDate day] + (totalDays - (int)[date day]); } return [Nsstring stringWithFormat:@"%d天前",(abs)(retDay)]; } else { if (abs(year) <= 1) { if (year == 0) { // 同年 return [Nsstring stringWithFormat:@"%d个月前",abs(month)]; } // 隔年 int month = (int)[curDate month]; int preMonth = (int)[date month]; if (month == 12 && preMonth == 12) {// 隔年,但同月,就作为满一年来计算 return @"1年前"; } return [Nsstring stringWithFormat:@"%d个月前",(abs)(12 - preMonth + month)]; } return [Nsstring stringWithFormat:@"%d年前",abs(year)]; } return @"1小时前"; }
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。