//
// NSDate+Joe.h
// WeiBo
//
// 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
// WeiBo
//
// 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分类,把系统返回的时间与现在进行比较---秀清的更多相关文章

  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. MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表

    一.需求分析 我们的开发团队,计划开发一款公司人事管理软件,用于帮助中小型企业进行更加高效的人事管理.现在需要对数据库部分进行设计和开发,根据对需求和立项的分析,我们确定该数据库中最核心的两个表为员工 ...

  2. MySQL数据操作与查询笔记 • 【第6章 聚合函数和分组查询】

    全部章节   >>>> 本章目录 6.1 sum.max 和 min 聚合函数 6.1.1 聚合函数介绍 6.1.2 sum 函数 6.1.3 max/min 函数 6.2 a ...

  3. vim 个性化设置

    vim 编辑器安装 yum install vim vim个性化设置 vim ~/.vimrc 复制以下代码 关闭vim一致性原则 set nocompatible 显示行号 set number 设 ...

  4. XML解析和创建的JAXB方式

    1.说明 JAXB是Java Architecture for XML Binding, 即用于XML绑定的Java体系结构, JAXB作为JDK的一部分, 能便捷地将Java对象与XML进行相互转换 ...

  5. MySQL主从复制作用和配置

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  6. Ant <Delete> 如何只删掉文件夹下所有文件和文件夹

    用 fileset 来过滤要删掉的目录和文件 <project name="ant-project" default="example"> < ...

  7. Node.js 模块之【passport】

    什么是passport passport是Nodejs的一个中间键,用于用户名和密码的验证登陆.在项目中我用它来验证后台用户名和密码,但passport更多用在第三方登录,功能强大. 安装与配置 本项 ...

  8. eclipse中配置Webdriver

    安装JDK,配置好Java环境 下载Eclipse,并完成安装 下载Webdriver的JAR文件(访问Selenium官网,下载Java版的zip文件,并且解压到本地磁盘,解压后文件夹内容如下图:) ...

  9. 关于jar包和war读取静态文件

    在war包中static中的静态文件,打成jar包后却读取不到,这是为什么呢,让我门看下两种读取的区别 一.war包中都取静态模板文件 public static void download(Stri ...

  10. Visaul Studio 2015 MFC控件使用之--按钮(Button)

    在MFC开发当中,比较常用的控件之一便是Button控件了,该控件的除了可以通过点击产生的开关量当作开关来使用,还可以设置其颜色变化当作显示灯,按钮控件的使用相对来比较简单. 打开工程解决方案的资源视 ...