iOS 微信生成聊天日期



#import <Foundation/Foundation.h>


@interface ChatTimeUtil : NSObject

-(NSString *)showDate:(NSDate *)d;


//nsstring nsdate

- (NSDate *)dateFromString:(NSString *)dateString 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(){

    NSDate *a;

}

@end



@implementation ChatTimeUtil

//如果一个方法中,需要外部变量时,而且这个变量有生命周期时,就不能用工具类.

-(NSString *)showDate:(NSDate *)date{

    NSDate *tmpDate =[[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([a timeIntervalSinceReferenceDate] + 5*60)];

    if([tmpDate earlierDate:date] == tmpDate){

        a = date;

        if([self isToday:date]){

            return  [self stringFromDate:date format:@"HH:mm"];

        }else{

            return  [self returnDate:date];

        }

    }

    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],[self stringFromDate:d format:@"HH:mm"]] ;

    }else{

        return [self stringFromDate:d format:@"yyyy-MM-dd HH:mm:ss"];

    }

    

}


//判断是否今天

- ( BOOL )isToday:(NSDate *)d

{

    NSCalendar *calendar = [ NSCalendar currentCalendar ];

    int unit = NSCalendarUnitDay | NSCalendarUnitMonthNSCalendarUnitYear ;

    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

//---------------------------调用方法--------------

ChatTimeUtil *util = [[ChatTimeUtil alloc] init];

    

    NSLog(@"%@",[util showDate:[util dateFromString:@"2014-12-8 13:26:00" format:@"yyyy-MM-dd HH:mm:ss"]]);

    NSLog(@"%@",[util showDate:[util dateFromString:@"2014-12-11 16:26:00" format:@"yyyy-MM-dd HH:mm:ss"]]);

    NSLog(@"%@",[util showDate:[util dateFromString:@"2014-12-11 16:30:00" format:@"yyyy-MM-dd HH:mm:ss"]]);


转载于:https://my.oschina.net/u/564793/blog/355618

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值