1. #import "NSDate+XMGExtension.h"
  2.  
  3. @implementation NSDate (XMGExtension)
  4. /**
  5. * 是否为今天
  6. */
  7. - (BOOL)isToday
  8. {
  9. NSCalendar *calendar = [NSCalendar currentCalendar];
  10.  
  11. NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
  12.  
  13. NSDateComponents *selfCmps = [calendar components:unit fromDate:self];
  14. NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];
  15.  
  16. return selfCmps.year == nowCmps.year
  17. && selfCmps.month == nowCmps.month
  18. && selfCmps.day == nowCmps.day;
  19. }
  20.  
  21. /**
  22. * 是否为昨天
  23. */
  24. - (BOOL)isYesterday
  25. {
  26. // 2015-04-01 10:10:10 -> 2015-04-01 00:00:00
  27. // 2015-03-31 23:50:40 -> 2015-03-31 00:00:00
  28.  
  29. // 生成只有年月日的日期对象
  30. NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
  31. fmt.dateFormat = @"yyyy-MM-dd";
  32.  
  33. NSString *selfString = [fmt stringFromDate:self];
  34. NSDate *selfDate = [fmt dateFromString:selfString];
  35.  
  36. NSString *nowString = [fmt stringFromDate:[NSDate date]];
  37. NSDate *nowDate = [fmt dateFromString:nowString];
  38.  
  39. // 比较差距
  40. NSCalendar *calendar = [NSCalendar currentCalendar];
  41. NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
  42. NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:];
  43.  
  44. return cmps.year ==
  45. && cmps.month ==
  46. && cmps.day == ;
  47. }
  48.  
  49. /**
  50. * 是否为明天
  51. */
  52. - (BOOL)isTomorrow
  53. {
  54. // 生成只有年月日的日期对象
  55. NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
  56. fmt.dateFormat = @"yyyy-MM-dd";
  57.  
  58. NSString *selfString = [fmt stringFromDate:self];
  59. NSDate *selfDate = [fmt dateFromString:selfString];
  60.  
  61. NSString *nowString = [fmt stringFromDate:[NSDate date]];
  62. NSDate *nowDate = [fmt dateFromString:nowString];
  63.  
  64. // 比较差距
  65. NSCalendar *calendar = [NSCalendar currentCalendar];
  66. NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
  67. NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:];
  68.  
  69. return cmps.year ==
  70. && cmps.month ==
  71. && cmps.day == -;
  72. }
  73.  
  74. /**
  75. * 是否为今年
  76. */
  77. - (BOOL)isThisYear
  78. {
  79. NSCalendar *calendar = [NSCalendar currentCalendar];
  80. NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self];
  81. NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]];
  82. return selfYear == nowYear;
  83. }
  84.  
  85. @end

NSDate 工具的更多相关文章

  1. IOS NSDate NSDateFormatter 导致相差8小时

    时间问题应该是所有编程语言都要处理的.详细学过php的同学知道,php中也会有相差8小时的问题,然而php可以非常方便的解决的,直接设置下就好了 我最近在学习IOS的过程中,发现IOS的日期处理也是个 ...

  2. 让iOS开发变得更有效率-分类、工具类

    在工作中整理的一些分类与工具类,分享给大家.这些工具类可以减少项目中的代码量,让代码变得更简洁,可以大大的提升项目的效率,直接拖到项目中使用即可.下载地址:https://github.com/lee ...

  3. 实现一个简单的http请求工具类

    OC自带的http请求用起来不直观,asihttprequest库又太大了,依赖也多,下面实现一个简单的http请求工具类 四个文件源码大致如下,还有优化空间 MYHttpRequest.h(类定义, ...

  4. iOS-----GitHub上比较齐全的iOS 工具和App

    Github-iOS 工具 和 App   系统基础库 Category/Util sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错-       BFKit 又一套Ca ...

  5. iOS 常用工具库LFKit功能介绍

    简介:LFKit包含了平时常用的category,封装的常用组件,一些工具类. 需要LFKit中所有自定义控件的pod 'LFKit/Component' 需要LFKit中所有category的pod ...

  6. AFNetworking网络请求与图片上传工具(POST)

    AFNetworking网络请求与图片上传工具(POST) .h文件 #import <Foundation/Foundation.h> /** 成功Block */ typedef vo ...

  7. Unity3d入门 - 关于unity工具的熟悉

    上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...

  8. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  9. 应用工具 .NET Portability Analyzer 分析迁移dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...

随机推荐

  1. IPython、Notebook、qtconsole使用教程

    IPython.Notebook.qtconsole使用教程 上一篇为Python,IPython,qtconsole,Notebook,Jupyter快速安装教程 1. 使用IPython 自动补全 ...

  2. Matlab2014的下载和安装激活过程

    Matlab2014的下载和安装过程 转载自csdn  https://blog.csdn.net/hp910315/article/details/70197149 1 下载Matlab2014,下 ...

  3. vc++中 .H 头文件引用的顺序与符号关系

    在使用 #include "math.h"  和 #include <math.h>时,引号 与尖括号的区别如下 此时math.h_1 在工程文件中 math.h_2 ...

  4. BigDecimal运算

    BigDecimal由任意精度整数未缩放值和32位整数级别组成 . 如果为零或正数,则刻度是小数点右侧的位数. 如果是负数,则数字的非标定值乘以10,以达到等级的否定的幂. 因此,BigDecimal ...

  5. ie7下设置z-index无效如何解决?

    ie7下z-index无效的问题之前做练习的时候遇到过,百度解决掉之后就丢脑后了.今天项目中又发现这个bug,无奈又去百度,这次还是记下来,节省了百度的时间还能小装一把... 需求是这样的: 页面中的 ...

  6. 个人Linux(ubuntu)使用记录——更换软件源

    说明:记录自己的linux使用过程,并不打算把它当作一个教程,仅仅只是记录下自己使用过程中的一些命令,配置等东西,这样方便自己查阅,也就不用到处去网上搜索了,所以文章毫无章法可言,甚至会记录得很乱 s ...

  7. php正则表达式匹配html标签

    用php正则表达式找出div标签,div允许多层嵌套,比如在以下文本中找出class为quizPutTag的div? <html> <head></head> &l ...

  8. js之DOM间接操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 牛客网NOIP赛前集训营 提高组 第5场 T2 旅游

    [题解] 我们可以发现不在最小生成树上的边一定不能多次经过,因为一条不在最小生成树上的边(u,v)的边权比最小生成树上(u,v)之间的路径更长,选择不在最小生成树上的边一定不划算. 我们还需要确定最小 ...

  10. 【OpenCV, MFC, DIP】向图像中加入各种噪声

    1.椒盐噪声 Mat dstImage = srcImage.clone(); ; k < n; k++) { //随机取值行列 int i = rand() % dstImage.rows; ...