判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
来源:互联网 发布:淘宝清空收藏夹 编辑:程序博客网 时间:2024/05/17 22:18
效果图:
时间处理样式:
1:创建NSDate的扩展类
NSDate+LMExtension.h
// Created by limin on 16/6/21.// Copyright © 2016年 limin. All rights reserved.//#import <Foundation/Foundation.h>@interface NSDate (LMExtension)/** 比较当前时间和from时间的差值*/-(NSDateComponents *)deltaFrom:(NSDate *)from;/** 是否为今年*/-(BOOL)isThisYear;/** 是否为今天*/-(BOOL)isToday;/** 是否为昨天*/-(BOOL)isYesterday;@end
NSDate+LMExtension.m
//// Created by limin on 16/6/21.// Copyright © 2016年 limin. All rights reserved.//#import "NSDate+LMExtension.h"@implementation NSDate (LMExtension)-(NSDateComponents *)deltaFrom:(NSDate *)from{ //日历 NSCalendar *calendar = [NSCalendar currentCalendar]; //比较时间 NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:from toDate:self options:0]; return comps;}-(BOOL)isThisYear{ NSDate *now = [NSDate date]; //日历 NSCalendar *calendar = [NSCalendar currentCalendar]; NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:now]; NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self]; return nowYear == selfYear; }/** 方法1:判断是否为今天*/-(BOOL)isToday{ //日历 NSCalendar *calendar = [NSCalendar currentCalendar]; NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; NSDateComponents *nowComps = [calendar components:unit fromDate:[NSDate date]]; NSDateComponents *selfComps = [calendar components:unit fromDate:self]; return nowComps.year == selfComps.year && nowComps.month == selfComps.month && nowComps.day == selfComps.day;}/** 方法2:判断是否为今天*///-(BOOL)isToday//{// NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init];// dateformatter.dateFormat = @"yyyy-MM-dd";// // NSString *nowString = [dateformatter stringFromDate:[NSDate date]];// NSString *selfString = [dateformatter stringFromDate:self];// return [nowString isEqualToString:selfString];//}/** 判断是否为昨天*/-(BOOL)isYesterday{ NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init]; dateformatter.dateFormat = @"yyyy-MM-dd"; NSDate *nowDate = [dateformatter dateFromString:[dateformatter stringFromDate:[NSDate date]]]; NSDate *selfDate = [dateformatter dateFromString:[dateformatter stringFromDate:self]]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *comps = [calendar components: NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0]; return comps.year == 0 && comps.month == 0 && comps.day == 1;}@end原文地址链接:http://blog.csdn.net/leemin_ios/article/details/51881853 点击打开链接
2: 时间赋值.
//Label赋值创建时间[self setupCreateTime:topicsModel.create_time];
setupCreateTime: 方法实现
#pragma mark - 时间处理/** *self.createTimeLabel:时间标签 *今天: [ 1分钟内:刚刚 1小时内:xx分钟前 其他:xx小时前 ] *昨天:几点几分 *其他:6-13 19:12 *不是今年:去年:年份2014-5-8 18:40:30 */-(void)setupCreateTime:(NSString *)create_time{ //设置日期格式 NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //创建时间 NSDate *createDate = [formatter dateFromString:create_time]; if (createDate.isThisYear) {//今年 if (createDate.isToday) {//今天 //当前时间 NSDate *nowDate = [NSDate date]; //比较时间 NSDateComponents *comps = [nowDate deltaFrom:createDate]; if (comps.hour >= 1) { //时间差距>=1小时 [self.createTimeLabel setText:[NSString stringWithFormat:@"%zd小时前",comps.hour]]; }else if (comps.minute >= 1) { //时间差距<1小时,>=1分钟 [self.createTimeLabel setText:[NSString stringWithFormat:@"%zd分钟前",comps.minute]]; }else {// 时间差距<1分钟 [self.createTimeLabel setText:@"刚刚"]; } }else if (createDate.isYesterday)//昨天 { formatter.dateFormat = @"昨天 HH:mm:ss"; [self.createTimeLabel setText:[formatter stringFromDate:createDate]]; }else {//其他 formatter.dateFormat = @"MM-dd HH:mm:ss"; [self.createTimeLabel setText:[formatter stringFromDate:createDate]]; } }else//非今年 { [self.createTimeLabel setText:create_time]; } }
0 0
- 判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
- 判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
- 判断时间是否为今天
- Android之判断时间是否为今天
- mysql判断TIMESTAMP时间是否为今天
- shell中判断当前时间是否为月末的方法
- iOS - NSDate分类-判断时间是否为今天,昨天,一周内,年月日
- PHP 判断时间是否为当天时间
- oracle 根据sysdate判断当前时间是否为正常工作时间
- Java 判断一个日期 是否为 今天、昨天
- android 判断指定日期是否为今天昨天
- C# 怎样判断时间是否为空
- 判断是否为数字,时间格式
- php判断是否为今天
- NSDate的一个分类,判断是否是今天,昨天,今年,获得与当前时间的差距,返回一个只有年月日的日期
- Android 判断获取的时间是否是今天、昨天
- ios中处理时间是否是今天,昨天,今年
- 判断是否为YYYY/MM/DD格式的时间
- C++中const用法总结
- 【2014.8.17NOIP普及组模拟】接苹果
- BK树
- Java基础之文件IO
- 面向过程处理机制VS面向对象处理机制
- 判断是否为今年、是否为今天、是否为昨天,比较当前时间和from时间的差值
- HDU 2669 Romantic
- io阻塞 非阻塞 同步 异步
- 对称加密算法DES、3DES和AES
- 基础总结篇之一:Activity生命周期
- Android进阶之在不同版本间兼容性处理
- 责任链模式
- find命令详解
- 敏捷开发与个人管理