1. //
  2. // NSDate+Joe.h
  3. // WeiBo
  4. //
  5. // Created by 张秀清 on 15/9/17.
  6. // Copyright (c) 2015年 张秀清. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10.  
  11. @interface NSDate (Joe)
  12.  
  13. /**
  14. * 是否是今天
  15. */
  16. -(BOOL)isToday;
  17. /**
  18. * 是否是这个月
  19. */
  20. -(BOOL)isThisYear;
  21. /**
  22. * 是否是今年
  23. */
  24. -(BOOL)isThisMonth;
  25. /**
  26. * 是否为昨天
  27. */
  28. - (BOOL)isYesterday;
  29.  
  30. /**
  31. * 返回'YYYY-MM-DD'的nsdate
  32. */
  33. - (NSDate *)dateWithYMD;
  34.  
  35. /**
  36. * 返回与当前时间的差距
  37. */
  38. - (NSDateComponents *)deltaWithNow;
  39. @end
  40.  
  41. //
  42. // NSDate+Joe.m
  43. // WeiBo
  44. //
  45. // Created by 张秀清 on 15/9/17.
  46. // Copyright (c) 2015年 张秀清. All rights reserved.
  47. //
  48.  
  49. #import "NSDate+Joe.h"
  50.  
  51. @implementation NSDate (Joe)
  52.  
  53. -(BOOL)isToday
  54. {
  55. NSCalendar *calendar = [NSCalendar currentCalendar];
  56.  
  57. int NSCalendarUnit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
  58.  
  59. //获取当前的年月日
  60. NSDateComponents *nowCps = [calendar components:NSCalendarUnit fromDate:[NSDate date]];
  61.  
  62. NSDateComponents *selfCps = [calendar components:NSCalendarUnit fromDate:self];
  63.  
  64. return (nowCps.year == selfCps.year) && (nowCps.month == selfCps.month) && (nowCps.day == selfCps.day);
  65. }
  66.  
  67. -(BOOL)isThisMonth
  68. {
  69. NSCalendar *calendar = [NSCalendar currentCalendar];
  70.  
  71. int NSCalendarUnit = NSCalendarUnitYear | NSCalendarUnitMonth;
  72.  
  73. //获取当前的年月日
  74. NSDateComponents *nowCps = [calendar components:NSCalendarUnit fromDate:[NSDate date]];
  75.  
  76. NSDateComponents *selfCps = [calendar components:NSCalendarUnit fromDate:self];
  77.  
  78. return (nowCps.year == selfCps.year) && (nowCps.month == selfCps.month);
  79.  
  80. }
  81.  
  82. -(BOOL)isThisYear
  83. {
  84. NSCalendar *calendar = [NSCalendar currentCalendar];
  85.  
  86. int NSCalendarUnit = NSCalendarUnitYear;
  87.  
  88. //获取当前的年月日
  89. NSDateComponents *nowCps = [calendar components:NSCalendarUnit fromDate:[NSDate date]];
  90.  
  91. NSDateComponents *selfCps = [calendar components:NSCalendarUnit fromDate:self];
  92.  
  93. return nowCps.year == selfCps.year;
  94. }
  95.  
  96. /**
  97. * 是否为昨天
  98. */
  99. - (BOOL)isYesterday
  100. {
  101. // 2014-05-01
  102. NSDate *nowDate = [[NSDate date] dateWithYMD];
  103.  
  104. // 2014-04-30
  105. NSDate *selfDate = [self dateWithYMD];
  106.  
  107. // 获得nowDate和selfDate的差距
  108. NSCalendar *calendar = [NSCalendar currentCalendar];
  109. NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];
  110. return cmps.day == 1;
  111. }
  112.  
  113. /**
  114. * 返回'YYYY-MM-DD'的nsdate
  115. */
  116. - (NSDate *)dateWithYMD
  117. {
  118. NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
  119. fmt.dateFormat = @"yyyy-MM-dd";
  120. NSString *selfStr = [fmt stringFromDate:self];
  121. return [fmt dateFromString:selfStr];
  122. }
  123.  
  124. /**
  125. * 返回与当前时间的差距
  126. */
  127. - (NSDateComponents *)deltaWithNow
  128. {
  129. NSCalendar *calendar = [NSCalendar currentCalendar];
  130. int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
  131. return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];
  132. }
  133. @end

NSDate分类,把系统返回的时间与现在进行比较---秀清的更多相关文章

  1. 截获导航控制器系统返回按钮的点击pop及右滑pop事件

    前几天看了@栾小布的一篇文章:Custom backBarButtonItem,在跟着做的时候我又顺便扩展了一些,写此文章的目的是为了总结一下自己所写的东西,方便以后翻看容易,同时也是自己入行iOS一 ...

  2. 【Objective-C】NSDate详解及获取当前时间等常用操作

    NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 ...

  3. NSDate详解及获取当前时间等常用操作

    NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 ...

  4. 如何诊断rac环境sysdate 返回的时间错误

    最近处理了若干rac环境访问sysdate错误的时间返回.而这个问题通常是一个数据库链接是由现在Listener创建的情况下.并且.大部分情况下都是和时区设置相关的.在这篇文章中我们会针对怎样诊断这样 ...

  5. Android中通过进程注入技术修改系统返回的Mac地址

    致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过 ...

  6. Linux系统如何记录时间

    1.内核在开机启动的时候会读取RTC硬件获取一个时间作为初始基准时间,这个基准时间对应一个jiiffies值(这个基准时间换算成jiffies值的方法是:用这个时间减去1970-01-01  00:0 ...

  7. Linux date命令 - 显示和设置系统日期与时间

    操作系统上的时间也许只是当做一个时钟.特别在控制台下, 我们通常并不认为时间有什么重要的.但是对于管理员,这种认识是错误的.你知道错误的日期和时间会导致你不能编译程序么? 因为日期和时间很重要,这或许 ...

  8. CentOS下date命令 - 显示和设置系统日期与时间

    显示系统日期 要显示系统日期,只要输入: $ date Thu Dec 5 22:55:41 WIB 2013 格式化显示日期 日期有很多格式.如果你不喜欢默认的格式,你可以换一种格式.你可能会想&q ...

  9. 查看linux系统的开机时间/重启历史记录

    查看linux系统的开机时间/重启历史记录1.who -b命令[root@rusky opt]# who -b ---查看最后一次(上次)系统启动的时间 system boot Dec 27 05:0 ...

随机推荐

  1. Unity——基于ShaderLab实现光照系统

    这篇主要总结Unity中ShaderLab的着色器代码实现总结,需要有一定图形学基础和ShaderLab基础: 一.着色器 1.顶点片元着色器 分顶点着色器和片元着色器,对应渲染管线的顶点变换和片元着 ...

  2. 【跨域】SpringBoot跨域,拦截器中,第一次获取的请求头为NULL,发送两次请求的处理方式

    背景: 在做前后端分离时,牵扯到跨域,但是已经设置了跨域 前端设置了允许携带Cookie axios.defaults.withCredentials = true; 后端也配置了跨域 浏览器端查看发 ...

  3. shell2-if判断

    1.条件测试类型(判断类型): 将测试结果做为判断依据. 测试类型有以下三种   [ 命令 ] :命令测试法(最常用的)  [[ 命令 ]] : 关键字测试 test 命令 以上是三种都可以,注意单词 ...

  4. 初识python 之 爬虫:正则表达式

    python中正则表达式功能由 re 模块提供: import re 两个主要函数: match  匹配第一个字符(从第一个字符开始匹配) search 匹配整个字符串 一.匹配单个字符 1.匹配某个 ...

  5. 通过USB和wifi连接真机&编写第一个脚本

    一.通过USB和wifi连接真机 1. 数据线连接手机并允许调试 cmd命令行执行:adb devices (能查看到设备就可以进行编写自动化脚本步骤了,如果在USB接触不良的情况下,可以执行下面步骤 ...

  6. Powershell 【控制台常用方法】

    1 function Pause(){ 2 [System.Console]::Write('按任意键继续...') 3 [void][System.Console]::ReadKey(1) 4 } ...

  7. 移动端H5选择本地图片

    移动端H5选择本地图片 html://input<input type="file" accept="image/*" capture="cam ...

  8. JAVA SOCKET 详解

    概述 本人在开发学习NETTY的过程中,需要了解很多的网络开发知识,在此我总结一些关于socket的基础知识,大部分是网络总结,在此篇的随笔中记录socket的知识,以便于记录,如有问题欢迎大家斧正. ...

  9. python实现掘金定时签到抽奖

    python实现掘金定时签到抽奖 一. 概述 这里记录一下使用 python 实现掘金定时签到抽奖.首先需要登录掘金,进入签到页面,按 F12 打开浏览器的调试面板,选择 Network,选择 XHR ...

  10. HTML、CSS、Javascript、jQuery、Xml

    HTML HTML简介 Hyper Text Markup Language (超文本标记语言)简写:HTML.通过标签来标记要显示的网页中的各个部分.网页文件本身是一种文本文件,通过在文本文件中添加 ...