博客> 判断日期是今天,昨天还是明天,和当前时间比较转换时间
判断日期是今天,昨天还是明天,和当前时间比较转换时间
2017-08-14 06:45 评论:0 阅读:235 wangwei1
ios NSData

-(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 @""; }

} 转自 http://www.360doc.com/content/15/0429/21/20918780_466911895.shtml

收藏
0
sina weixin mail 回到顶部