您的位置:首页 > 移动开发 > IOS开发

IOS判断日期是今天,昨天还是明天

2015-12-18 17:32 429 查看
-(NSString *)compareDate:(NSDate *)date{

NSTimeInterval secondsPerDay = 24 * 60 * 60;
NSDate *today = [[NSDate alloc] init];
NSDate *tomorrow, *yesterday;

tomorrow = [today dateByAddingTimeInterval: secondsPerDay];
yesterday = [today dateByAddingTimeInterval: -secondsPerDay];

// 10 first characters of description is the calendar date:
NSString * todayString = [[today description] substringToIndex:10];
NSString * yesterdayString = [[yesterday description] substringToIndex:10];
NSString * tomorrowString = [[tomorrow description] substringToIndex:10];

NSString * dateString = [[date description] substringToIndex:10];

if ([dateString isEqualToString:todayString])
{
return @"今天";
} else if ([dateString isEqualToString:yesterdayString])
{
return @"昨天";
}else if ([dateString isEqualToString:tomorrowString])
{
return @"明天";
}
else
{
return dateString;
}
}
//----------------------------------------------

/**
/////  和当前时间比较
////   1)1分钟以内 显示        :    刚刚
////   2)1小时以内 显示        :    X分钟前
///    3)今天或者昨天 显示      :    今天 09:30   昨天 09:30
///    4) 今年显示              :   09月12日
///    5) 大于本年      显示    :    2013/09/09
**/

+ (NSString *)formateDate:(NSString *)dateString withFormate:(NSString *) formate
{

@try {
//实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:formate];

NSDate * nowDate = [NSDate date];

/////  将需要转换的时间转换成 NSDate 对象
NSDate * needFormatDate = [dateFormatter dateFromString:dateString];
/////  取当前时间和转换时间两个日期对象的时间间隔
/////  这里的NSTimeInterval 并不是对象,是基本型,其实是double类型,是由c定义的:  typedef double NSTimeInterval;
NSTimeInterval time = [nowDate timeIntervalSinceDate:needFormatDate];

//// 再然后,把间隔的秒数折算成天数和小时数:

NSString *dateStr = @"";

if (time<=60) {  //// 1分钟以内的
dateStr = @"刚刚";
}else if(time<=60*60){  ////  一个小时以内的

int mins = time/60;
dateStr = [NSString stringWithFormat:@"%d分钟前",mins];

}else if(time<=60*60*24){   //// 在两天内的

[dateFormatter setDateFormat:@"YYYY/MM/dd"];
NSString * need_yMd = [dateFormatter stringFromDate:needFormatDate];
NSString *now_yMd = [dateFormatter stringFromDate:nowDate];

[dateFormatter setDateFormat:@"HH:mm"];
if ([need_yMd isEqualToString:now_yMd]) {
//// 在同一天
dateStr = [NSString stringWithFormat:@"今天 %@",[dateFormatter stringFromDate:needFormatDate]];
}else{
////  昨天
dateStr = [NSString stringWithFormat:@"昨天 %@",[dateFormatter stringFromDate:needFormatDate]];
}
}else {

[dateFormatter setDateFormat:@"yyyy"];
NSString * yearStr = [dateFormatter stringFromDate:needFormatDate];
NSString *nowYear = [dateFormatter stringFromDate:nowDate];

if ([yearStr isEqualToString:nowYear]) {
////  在同一年
[dateFormatter setDateFormat:@"MM月dd日"];
dateStr = [dateFormatter stringFromDate:needFormatDate];
}else{
[dateFormatter setDateFormat:@"yyyy/MM/dd"];
dateStr = [dateFormatter stringFromDate:needFormatDate];
}
}

return dateStr;
}
@catch (NSException *exception) {
return @"";
}

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