#import <Foundation/Foundation.h>
@interface ChatTimeUtil : NSObject
+(NSString *)showDate:(NSDate *)date upDate:(NSDate *)a;
//nsstring 转 nsdate
+ (NSDate *)dateFromString:(NSString *)dateString format:(NSString *)format;
+ (NSString *)stringFromDate:(NSDate *)date format:(NSString *)format;
@end
//
// ChatTimeUtil.m
// Test1111
//
// Created by victor-lee on 14-12-11.
// Copyright (c) 2014年 自由人. All rights reserved.
//
#import "ChatTimeUtil.h"
@interface ChatTimeUtil()
@end
@implementation ChatTimeUtil
//如果一个方法中,需要外部变量时,而且这个变量有生命周期时,就不能用工具类.
+(NSString *)showDate:(NSDate *)date upDate:(NSDate *)a{
NSDate *tmpDate =[[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([a timeIntervalSinceReferenceDate] + 5*60)];
if([tmpDate earlierDate:date] == tmpDate){
if([self isToday:date]){
return [ChatTimeUtil stringFromDate:date format:@"HH:mm"];
}else{
return [self returnDate:date];
}
}else{
return nil;
}
}
//nsstring 转 nsdate
+(NSDate *)dateFromString:(NSString *)dateString format:(NSString *)format{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat: format];
NSDate *destDate= [dateFormatter dateFromString:dateString];
return destDate;
}
//nsdate 转 nsstring
+(NSString *)stringFromDate:(NSDate *)date format:(NSString *)format{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:format];
return [dateFormatter stringFromDate:date];
}
//如果日期是一星期内,便返回星期N,如果是一星期前就返回之间的日期
+(NSString *)returnDate:(NSDate *)d{
NSDate *tmpDate =[[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([[NSDate date] timeIntervalSinceReferenceDate] - 7*24*60*60)];
if([tmpDate earlierDate:d] == tmpDate){
NSDateComponents *componets = [[NSCalendar autoupdatingCurrentCalendar] components:NSWeekdayCalendarUnit fromDate:d];
;
return [ NSString stringWithFormat:@"%@ %@",[self getWeek:[componets weekday]-1],[ChatTimeUtil stringFromDate:d format:@"HH:mm"]] ;
}else{
return [ChatTimeUtil stringFromDate:d format:@"yyyy-MM-dd HH:mm:ss"];
}
}
//判断是否今天
+ ( BOOL )isToday:(NSDate *)d
{
NSCalendar *calendar = [ NSCalendar currentCalendar ];
int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;
NSDateComponents *nowCmps = [calendar components :unit fromDate :[ NSDate date ]];
NSDateComponents *selfCmps = [calendar components :unit fromDate : d ];
return (selfCmps. year == nowCmps. year ) && (selfCmps. month == nowCmps. month ) && (selfCmps. day == nowCmps. day );
}
+(NSString *)getWeek:(NSInteger)week{
switch (week) {
case 1:
return @"星期一";
break;
case 2:
return @"星期二";
break;
case 3:
return @"星期三";
break;
case 4:
return @"星期四";
break;
case 5:
return @"星期五";
break;
case 6:
return @"星期六";
break;
default:
return @"星期日";
break;
}
}
@end