NSDate分类,把系统返回的时间与现在进行比较---秀清
- //
- // NSDate+Joe.h
- //
- // Created by 张秀清 on 15/9/17.
- // Copyright (c) 2015年 张秀清. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- @interface NSDate (Joe)
- /**
- * 是否是今天
- */
- -(BOOL)isToday;
- /**
- * 是否是这个月
- */
- -(BOOL)isThisYear;
- /**
- * 是否是今年
- */
- -(BOOL)isThisMonth;
- /**
- * 是否为昨天
- */
- - (BOOL)isYesterday;
- /**
- * 返回'YYYY-MM-DD'的nsdate
- */
- - (NSDate *)dateWithYMD;
- /**
- * 返回与当前时间的差距
- */
- - (NSDateComponents *)deltaWithNow;
- @end
- //
- // NSDate+Joe.m
- //
- // Created by 张秀清 on 15/9/17.
- // Copyright (c) 2015年 张秀清. All rights reserved.
- //
- #import "NSDate+Joe.h"
- @implementation NSDate (Joe)
- -(BOOL)isToday
- {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- int NSCalendarUnit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
- //获取当前的年月日
- NSDateComponents *nowCps = [calendar components:NSCalendarUnit fromDate:[NSDate date]];
- NSDateComponents *selfCps = [calendar components:NSCalendarUnit fromDate:self];
- return (nowCps.year == selfCps.year) && (nowCps.month == selfCps.month) && (nowCps.day == selfCps.day);
- }
- -(BOOL)isThisMonth
- {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- int NSCalendarUnit = NSCalendarUnitYear | NSCalendarUnitMonth;
- //获取当前的年月日
- NSDateComponents *nowCps = [calendar components:NSCalendarUnit fromDate:[NSDate date]];
- NSDateComponents *selfCps = [calendar components:NSCalendarUnit fromDate:self];
- return (nowCps.year == selfCps.year) && (nowCps.month == selfCps.month);
- }
- -(BOOL)isThisYear
- {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- int NSCalendarUnit = NSCalendarUnitYear;
- //获取当前的年月日
- NSDateComponents *nowCps = [calendar components:NSCalendarUnit fromDate:[NSDate date]];
- NSDateComponents *selfCps = [calendar components:NSCalendarUnit fromDate:self];
- return nowCps.year == selfCps.year;
- }
- /**
- * 是否为昨天
- */
- - (BOOL)isYesterday
- {
- // 2014-05-01
- NSDate *nowDate = [[NSDate date] dateWithYMD];
- // 2014-04-30
- NSDate *selfDate = [self dateWithYMD];
- // 获得nowDate和selfDate的差距
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];
- return cmps.day == 1;
- }
- /**
- * 返回'YYYY-MM-DD'的nsdate
- */
- - (NSDate *)dateWithYMD
- {
- NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
- fmt.dateFormat = @"yyyy-MM-dd";
- NSString *selfStr = [fmt stringFromDate:self];
- return [fmt dateFromString:selfStr];
- }
- /**
- * 返回与当前时间的差距
- */
- - (NSDateComponents *)deltaWithNow
- {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
- return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];
- }
- @end
NSDate分类,把系统返回的时间与现在进行比较---秀清的更多相关文章
- 截获导航控制器系统返回按钮的点击pop及右滑pop事件
前几天看了@栾小布的一篇文章:Custom backBarButtonItem,在跟着做的时候我又顺便扩展了一些,写此文章的目的是为了总结一下自己所写的东西,方便以后翻看容易,同时也是自己入行iOS一 ...
- 【Objective-C】NSDate详解及获取当前时间等常用操作
NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 ...
- NSDate详解及获取当前时间等常用操作
NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建NSDate实例的类方法有 ...
- 如何诊断rac环境sysdate 返回的时间错误
最近处理了若干rac环境访问sysdate错误的时间返回.而这个问题通常是一个数据库链接是由现在Listener创建的情况下.并且.大部分情况下都是和时区设置相关的.在这篇文章中我们会针对怎样诊断这样 ...
- Android中通过进程注入技术修改系统返回的Mac地址
致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过 ...
- Linux系统如何记录时间
1.内核在开机启动的时候会读取RTC硬件获取一个时间作为初始基准时间,这个基准时间对应一个jiiffies值(这个基准时间换算成jiffies值的方法是:用这个时间减去1970-01-01 00:0 ...
- Linux date命令 - 显示和设置系统日期与时间
操作系统上的时间也许只是当做一个时钟.特别在控制台下, 我们通常并不认为时间有什么重要的.但是对于管理员,这种认识是错误的.你知道错误的日期和时间会导致你不能编译程序么? 因为日期和时间很重要,这或许 ...
- CentOS下date命令 - 显示和设置系统日期与时间
显示系统日期 要显示系统日期,只要输入: $ date Thu Dec 5 22:55:41 WIB 2013 格式化显示日期 日期有很多格式.如果你不喜欢默认的格式,你可以换一种格式.你可能会想&q ...
- 查看linux系统的开机时间/重启历史记录
查看linux系统的开机时间/重启历史记录1.who -b命令[root@rusky opt]# who -b ---查看最后一次(上次)系统启动的时间 system boot Dec 27 05:0 ...
随机推荐
- Unity——基于ShaderLab实现光照系统
这篇主要总结Unity中ShaderLab的着色器代码实现总结,需要有一定图形学基础和ShaderLab基础: 一.着色器 1.顶点片元着色器 分顶点着色器和片元着色器,对应渲染管线的顶点变换和片元着 ...
- 【跨域】SpringBoot跨域,拦截器中,第一次获取的请求头为NULL,发送两次请求的处理方式
背景: 在做前后端分离时,牵扯到跨域,但是已经设置了跨域 前端设置了允许携带Cookie axios.defaults.withCredentials = true; 后端也配置了跨域 浏览器端查看发 ...
- shell2-if判断
1.条件测试类型(判断类型): 将测试结果做为判断依据. 测试类型有以下三种 [ 命令 ] :命令测试法(最常用的) [[ 命令 ]] : 关键字测试 test 命令 以上是三种都可以,注意单词 ...
- 初识python 之 爬虫:正则表达式
python中正则表达式功能由 re 模块提供: import re 两个主要函数: match 匹配第一个字符(从第一个字符开始匹配) search 匹配整个字符串 一.匹配单个字符 1.匹配某个 ...
- 通过USB和wifi连接真机&编写第一个脚本
一.通过USB和wifi连接真机 1. 数据线连接手机并允许调试 cmd命令行执行:adb devices (能查看到设备就可以进行编写自动化脚本步骤了,如果在USB接触不良的情况下,可以执行下面步骤 ...
- Powershell 【控制台常用方法】
1 function Pause(){ 2 [System.Console]::Write('按任意键继续...') 3 [void][System.Console]::ReadKey(1) 4 } ...
- 移动端H5选择本地图片
移动端H5选择本地图片 html://input<input type="file" accept="image/*" capture="cam ...
- JAVA SOCKET 详解
概述 本人在开发学习NETTY的过程中,需要了解很多的网络开发知识,在此我总结一些关于socket的基础知识,大部分是网络总结,在此篇的随笔中记录socket的知识,以便于记录,如有问题欢迎大家斧正. ...
- python实现掘金定时签到抽奖
python实现掘金定时签到抽奖 一. 概述 这里记录一下使用 python 实现掘金定时签到抽奖.首先需要登录掘金,进入签到页面,按 F12 打开浏览器的调试面板,选择 Network,选择 XHR ...
- HTML、CSS、Javascript、jQuery、Xml
HTML HTML简介 Hyper Text Markup Language (超文本标记语言)简写:HTML.通过标签来标记要显示的网页中的各个部分.网页文件本身是一种文本文件,通过在文本文件中添加 ...