分类的.h文件提供四个方法来方便使用

  

  - (BOOL)isToday;//判断是否为今天

  - (BOOL)isYesterday;//是否为昨天

  - (BOOL)isThisYear;//是不是今年

  - (NSDate *)dateWithYMD;//格式化日期,返回yyyy-MM-dd

  - (NSDateComponents *)deltaWithNow;//日期和当前日期的差的天数

  方法的具体实现

  

- (BOOL)isToday

{

NSCalendar *calendar = [NSCalendar currentCalendar];

int unit = NSCalendarUnitDay | NSCalendarUnitMonth |  NSCalendarUnitYear;

// 1.获得当前时间的年月日

NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];

// 2.获得self的年月日

NSDateComponents *selfCmps = [calendar components:unit fromDate:self];

return

(selfCmps.year == nowCmps.year) &&      //直接分别用当前对象和现在的时间进行比较,比较的属性就是年月日

(selfCmps.month == nowCmps.month) &&

(selfCmps.day == nowCmps.day);

}

//格式化日期

- (NSDate *)dateWithYMD

{

NSDateFormatter *fmt = [[NSDateFormatteralloc] init];

fmt.dateFormat = @"yyyy-MM-dd";

NSString *selfStr = [fmt stringFromDate:self];

return [fmt dateFromString:selfStr];

}

//判断是不是今年

-(BOOL)thisYear

{

  NSCalendar *cale = [NSCalendar curentCalendar];

  int unit = NSCalendarUnitYear;

  //获取当前的年月日

  NSDateComponents  *nowCmps = [calendar  components:unit fromDate:[NSDate date];

  //获得self的年月日

  NSDateComponents *selfCmps = [calendar components:unit fromDate:self];

  return nowCmps.year == selfCmps.year;

}

//计算日期差

- (NSDateComponents *)deltaFromNow

{

NSCalendar *calendar = [NSCalendar currentCalendar];

int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

return [calendar components:unit fromDate:selftoDate:[NSDatedate] options:0];

}

2014年05月12日07:37:12

mark - All right reserved.

转载于:https://www.cnblogs.com/azxfire/p/3724412.html

NSDate的使用方便的分类(提供判断是否为今天,昨天,今年的方法)相关推荐

  1. JavaScript高级day01-AM【WebStrom安装、数据类型分类及判断、数据-内存-变量、引用变量赋值、对象的组成】

    笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目   录 P1 01.尚硅谷_JS高级_准备 07:07 WebStrom 下载及安装 1 ...

  2. 使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负

    使用pytorch搭建MLP多层感知器分类网络判断LOL比赛胜负 1. 数据集 百度网盘链接,提取码:q79p 数据集文件格式为CSV.数据集包含了大约5万场英雄联盟钻石排位赛前15分钟的数据集合,总 ...

  3. c语言比较当前日期大小,C语言判断两个日期只差的方法

    C语言判断两个日期只差的方法 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以 ...

  4. python怎么返回上一行代码_Python实现判断一行代码是否为注释的方法

    目前的编辑器大都可以自动检测某一行代码是否为代码行或注释行,但并不太提供代码行/注释行行数的统计,对于大量代码文件的代码行/注释行统计,就更少见一些.本篇文章试用一段Python脚本来实现这一目标,并 ...

  5. java验证xml格式是否正确的是_java判断文件是否为xml格式的方法

    java判断文件是否为xml格式的方法 发布时间:2020-06-25 14:59:53 来源:亿速云 阅读:195 作者:Leah 本篇文章为大家展示了java判断文件是否为xml格式的方法,代码简 ...

  6. php 字符串不相等判断,php简单判断两个字符串是否相等的方法

    php简单判断两个字符串是否相等的方法 本文实例讲述了php简单判断两个字符串是否相等的方法.分享给大家供大家参考.具体实现方法如下: function strcomp($str1,$str2){ i ...

  7. MySQL正则表达式判断身份证_php正则判断是否为合法身份证号的方法

    本文实例讲述了php正则判断是否为合法身份证号的方法.分享给大家供大家参考,具体如下: /** * 判断是否为合法的身份证号码 * @param $mobile * @return int */ fu ...

  8. 封装一个新闻类News,包含新闻标题,新闻作者,新闻内容,新闻类型三个属性,提供必要的访问器和修改器方法重写toString方法,要求打印对象时输出格式为“标题;

    封装一个新闻类News,包含新闻标题,新闻作者,新闻内容, 新闻类型三个属性,提供必要的访问器和修改器方法,重写toString方法, 要求打印对象时输出格式为"标题:类型:作者" ...

  9. C语言字符串判断是否与已知相同,C语言中判断两个字符串是否相同的方法

    C语言中判断两个字符串是否相同的方法 C语言提供了几个标准库函数,可以比较两个字符串是否相同.以下是用strcmp()函数比较字符串的一个例子: #include #include void main ...

  10. 判断字符串不包含某个字符php,java判断字符串是否包含某个字符的方法

    java判断字符串是否包含某个字符的方法: 一.contains方法 1:描述 java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列 2: ...

最新文章

  1. linux 命令详解 十一
  2. 手机技巧:手机丢了记住这四步操作,让你的损失降到最低!
  3. 《零基础看得懂的C++入门教程 》——(1)第一个C++程序就让你知其所以然
  4. 为JAVA性能而设计(一)
  5. python在职场的用处大吗_Python未来发展怎么样,未来办公是否都需要精通Python?...
  6. java 俄罗斯方块窗口_[代码全屏查看]-java 俄罗斯方块
  7. 分布式事务实践 解决数据一致性 分布式事务实现,模式和技术
  8. 数组实例的copyWithin()方法
  9. pfSense 2.3.5发布!汉化包同步发布!
  10. 程序出错后 程序员给测试人员的20条高频回复
  11. Python--文件修改
  12. 创建jenkins任务
  13. 代理模式和装饰者模式区别
  14. 没有人脉如何靠内推进大厂?内推真的那么神吗?带你搞透内推到底是什么
  15. Java查询Mysql数据库时区问题(相差13/14)个小时
  16. ActiveSync 与 Pocket PC 2003 仿真器 建立同步
  17. Mand Mobile - 基于金融场景的Vuejs组件库
  18. 2019软考总结-UML
  19. turtle画彩虹蟒蛇
  20. win10系统开启局域网共享

热门文章

  1. oracle向右削减和补全,b操纵序列削减Oracle数据库开辟工作量-开辟技术/b[Oracle防范]...
  2. H5中CSS3动画的性能优化
  3. ES6的Set使用方法
  4. 考虑空气阻力的抛射体的matlab,考虑空气阻力的抛射体运动mtlab仿真
  5. mysql maratadb_Mysql/Mairadb主从复制
  6. Linux下hba卡驱动的卸载,SLES11下如何重装qlogic FC HBA卡驱动
  7. 即时系统和非即时系统的区别?_家庭装修,能不能让热水来得快一点——即时热水系统...
  8. Html设置div重置样式,CSS 重置样式
  9. python夹角余弦雷达图_P19 从三角形夹角计算看math模块
  10. 我的世界服务器名称被占用,为什么我的世界服务器说此用户名已被注册我都换了很多用户了都没用 爱问知识人...