//
// 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. 编写Java程序,现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示

    查看本章节 查看作业目录 需求说明: 现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示 实现思路: 创建解析 XML 文档类 ParseXML 和窗体类 ...

  2. HTML网页设计基础笔记 • 【第7章 盒子模型】

    全部章节   >>>> 本章目录 7.1 盒子模型原理 7.1.1 盒子模型概述 7.1.2 盒子的大小 7.1.3 盒子之间的关系 7.2 标准文档流 7.2.1 标准文档流 ...

  3. Linux-saltstack-3 saltstack的grains和pillar的基本使用

    @ 目录 一.简介 二.grains 1.查看客户端所有的grains项 2.查看grains的所有的项和值 3.查看某个项和值 (1)语法1: (2)语法2: 4.根据grains来匹配目标主机 例 ...

  4. 利用EndpointSlices扩展Kubernetes网络,提供更强的可伸缩性和功能

    EndpointSlices是一个令人兴奋的新API,它提供了Endpoints API的可扩展和可扩张的替代方案.EndpointSlice跟踪Pod服务后面的IP地址,端口,准备情况和拓扑信息.在 ...

  5. 利用Spring AOP切面对用户访问进行监控

    开发系统时往往需要考虑记录用户访问系统查询了那些数据.进行了什么操作,尤其是访问重要的数据和执行重要的操作的时候将数记录下来尤显的有意义.有了这些用户行为数据,事后可以以用户为条件对用户在系统的访问和 ...

  6. java(基于springboot项目或maven项目均可) 操作mongodb

    一.引入mongodb 坐标依赖<dependency> <groupId>org.mongodb</groupId> <artifactId>mong ...

  7. NPOI处理Excel

    using NPOI; using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; NPOI.SS.U ...

  8. 白嫖党的福音!!!全新的Java300集视频(2022版)来了!

    它来了它来了,经过一年时间的沉淀, [尚学堂]高淇Java300集完整版正式发布啦! 应广大网友和尚学堂忠实的孜孜学子以及听众朋友的要求,尚学堂在去年十月份就把预计在2022年发布的Java300集提 ...

  9. 【刷题-LeetCode】221. Maximal Square

    Maximal Square Given a 2D binary matrix filled with 0's and 1's, find the largest square containing ...

  10. prometheus+exporter小测试:

    1.golang中使用expoter import ( "github.com/prometheus/client_golang/prometheus/promhttp" ) fu ...