| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- //
- // NSDate+Common.m
- // TIMChat
- //
- // Created by AlexiChen on 16/3/16.
- // Copyright © 2016年 AlexiChen. All rights reserved.
- //
- #import "NSDate+Common.h"
- @implementation NSDate (Common)
- #define kMinuteTimeInterval (60)
- #define kHourTimeInterval (60 * kMinuteTimeInterval)
- #define kDayTimeInterval (24 * kHourTimeInterval)
- #define kWeekTimeInterval (7 * kDayTimeInterval)
- #define kMonthTimeInterval (30 * kDayTimeInterval)
- #define kYearTimeInterval (12 * kMonthTimeInterval)
- - (BOOL)isToday
- {
- NSCalendar *cal = [NSCalendar currentCalendar];
- NSDateComponents *components = [cal components:(NSCalendarUnitEra|NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay) fromDate:[NSDate date]];
- NSDate *today = [cal dateFromComponents:components];
-
- components = [cal components:(NSCalendarUnitEra|NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay) fromDate:self];
- NSDate *otherDate = [cal dateFromComponents:components];
-
- if([today isEqualToDate:otherDate])
- {
- return YES;
- }
- return NO;
- }
- - (BOOL)isYesterday
- {
- NSCalendar *cal = [NSCalendar currentCalendar];
- NSDateComponents *components = [cal components:(NSCalendarUnitEra|NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay) fromDate:[NSDate date]];
- NSDate *today = [cal dateFromComponents:components];
- NSDate *yesterday = [today dateByAddingTimeInterval: -kDayTimeInterval];
-
- components = [cal components:(NSCalendarUnitEra|NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay) fromDate:self];
- NSDate *otherDate = [cal dateFromComponents:components];
-
- if([yesterday isEqualToDate:otherDate])
- {
- return YES;
- }
- return NO;
- }
- - (NSString *)shortTimeTextOfDate
- {
- NSDate *date = self;
-
- NSTimeInterval interval = [date timeIntervalSinceDate:[NSDate date]];
-
- interval = -interval;
-
- if ([date isToday])
- {
- // 今天的消息
- NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
- [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
- [dateFormat setAMSymbol:ASLocalizedString(@"上午")];
- [dateFormat setPMSymbol:ASLocalizedString(@"下午")];
- NSString *dateString = [dateFormat stringFromDate:date];
- return dateString;
- }
- else if ([date isYesterday])
- {
- // 昨天
- return ASLocalizedString(@"昨天");
- }
- else if (interval < kWeekTimeInterval)
- {
- // 最近一周
- // 实例化一个NSDateFormatter对象
- NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
- dateFormat.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
- [dateFormat setDateFormat:@"ccc"];
- NSString *dateString = [dateFormat stringFromDate:date];
- return dateString;
- }
- else
- {
- NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
-
- NSDateComponents *today = [[NSCalendar currentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:[NSDate date]];
-
- if ([components year] == [today year])
- {
- // 今年
- NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
-
- [dateFormat setDateFormat:@"MM-dd"];
- NSString *dateString = [dateFormat stringFromDate:date];
- return dateString;
- }
- else
- {
- // 往年
- NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
- [dateFormat setDateFormat:@"yy-MM-dd"];
- NSString *dateString = [dateFormat stringFromDate:date];
- return dateString;
-
- }
- }
- return nil;
- }
- - (NSString *)timeTextOfDate
- {
- NSDate *date = self;
-
- NSTimeInterval interval = [date timeIntervalSinceDate:[NSDate date]];
-
- interval = -interval;
-
- // 今天的消息
- NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
- [dateFormat setDateFormat:@"aHH:mm"];
- [dateFormat setAMSymbol:ASLocalizedString(@"上午")];
- [dateFormat setPMSymbol:ASLocalizedString(@"下午")];
- NSString *dateString = [dateFormat stringFromDate:date];
-
- if ([date isToday])
- {
- // 今天的消息
- return dateString;
- }
- else if ([date isYesterday])
- {
- // 昨天
- return [NSString stringWithFormat:ASLocalizedString(@"昨天 %@"), dateString];
- }
- else if (interval < kWeekTimeInterval)
- {
- // 最近一周
- // 实例化一个NSDateFormatter对象
- NSDateFormatter* weekFor = [[NSDateFormatter alloc] init];
- weekFor.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
- [weekFor setDateFormat:@"ccc"];
- NSString *weekStr = [weekFor stringFromDate:date];
- return [NSString stringWithFormat:@"%@ %@", weekStr, dateString];
- }
- else
- {
- NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];
-
- NSDateComponents *today = [[NSCalendar currentCalendar] components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:[NSDate date]];
-
- if ([components year] == [today year])
- {
- // 今年
- NSDateFormatter *mdFor = [[NSDateFormatter alloc] init];
- [mdFor setDateFormat:@"MM-dd"];
- NSString *mdStr = [mdFor stringFromDate:date];
- return [NSString stringWithFormat:@"%@ %@", mdStr, dateString];
- }
- else
- {
- // 往年
- NSDateFormatter *ymdFormat = [[NSDateFormatter alloc] init];
- [ymdFormat setDateFormat:@"yy-MM-dd"];
- NSString *ymdString = [ymdFormat stringFromDate:date];
- return [NSString stringWithFormat:@"%@ %@", ymdString, dateString];;
-
- }
- }
- return nil;
- }
- @end
|