IOS NSDate 扩展(自定义日历、日期对比、今天判断、昨天判断、本周判断、本月判断等)_蟒蛇_AutoFire的博客-程序员秘密_ios nsdate判断是否同一个月

技术标签: 随便写写  iOS问题处理  iOS研发分析  

#import <Foundation/Foundation.h>

@interface NSDate(ZXLExtension)

/** 是否为今天 */
-(BOOL)isToday;

/** 是否为昨天 */
- (BOOL)isYesterday;

/** 是否为本周内 */
- (BOOL)isThisWeak;

/** 是否为本月 */
- (BOOL)isThisMonth;

/** 是否为今年 */
- (BOOL)isThisYear;

/**本周星期几(注:中国式星期日为 7)*/
- (NSInteger)weekDay;

/**
 今天 00:00 :00  凌晨0时
 @return 日期
 */
+(NSDate *)today;

/**
 某年某月某日 转换为NSDate
 @param month 月
 @param day 日
 @param year 年
 @return NSDate
 */
+ (NSDate *)dateWithMonth:(NSUInteger)month day:(NSUInteger)day year:(NSUInteger)year;

/**本周星期一*/
+ (NSDate *)weekFirstDayWithToday;
/**某一天所在周星期一*/
+ (NSDate *)weekFirstDayWithDate:(NSString *)date;
/**某一天上周星期一*/
+ (NSDate *)frontWeekFirstDayWithDate:(NSString *)date;
/**某一天下周星期一*/
+ (NSDate *)nextWeekFirstDayWithDate:(NSString *)date;

/**
 某年某月的第一天时间
 @param month 月
 @param year 年
 @return NSDate
 */
+ (NSDate *)mothFirstDayWithMonth:(NSUInteger)month year:(NSUInteger)year;

/**
 今天 所在月的第一天
 @return NSDate
 */
+ (NSDate *)todayMothFirstDay;

/**
 指定时间的上个月的第一天
 @param date 指定时间
 @return 上个月的第一天
 */
+ (NSDate *)mothFirstDayWithFrontMonth:(NSDate *)date;

/**
 指定时间的下一个月的第一天
 @param date 指定时间
 @return 下月的第一天
 */
+ (NSDate *)mothFirstDayWithNextMonth:(NSDate *)date;


/**
 某年某月有多少天
 
 @param month 月
 @param year 年
 @return 天数
 */
+ (NSUInteger)daysInMonth:(NSUInteger)month ofYear:(NSUInteger)year;

/**
 某年某月的第一天是星期几
 
 @param month 月
 @param year 年
 @return 星期几
 */
+ (NSUInteger)firstWeekdayInMonth:(NSUInteger)month ofYear:(NSUInteger)year;


/**
 NSDateComponents 类型转 NSDate
 @param components NSDateComponents
 @return NSDate
 */
+ (NSDate *)dateFromDateComponents:(NSDateComponents *)components;

/**
 NSDate转NSDateComponents
 @param date date descriptionNSDate
 @return NSDateComponents
 */
+ (NSDateComponents *)dateComponentsFromDate:(NSDate *)date;

/**
 日期对比是否为同一天
 @param date 对比日
 @param otherDate 另一个对比日
 @return 是否一样
 */
+ (BOOL)compareDate:(NSDate *)date otherDate:(NSDate *)otherDate;

/**
 时间戳转 展示字符串
 规则 今天 12:12  昨天 12:12  12月12日 12:12 跨年 2018年12月12日 12:12
 @param dTime 时间戳
 @return 时间显示
 */
+(NSString *)doubleTimeChangeToShowString:(double)dTime;

/**
 星期转中文字符串
 
 @param weekday 星期几
 @return 中文字符串
 */
+ (NSString *)stringOfWeekdayInChinese:(NSUInteger)weekday;

@end

代码传送门

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sky_long_fly/article/details/85162001

智能推荐

Java面试题2.0--solr_solr面试题_青春季风暴的博客-程序员秘密

欢迎关注《Java面试题2.0》合集发布页,持续更新中!概念:Solr是目前非常受欢迎的基于Apache开源组织下Lucene开发的一个开源高性能的企业级搜索平台。Solr具有高度可靠性、可扩展性、可容错性的特点,提供了分布式索引、索引备份、查询负载均衡、自动故障转移和恢复,以及集中配置等功能。core想要在Solr中添加索引,你需要指定一个Core,即你需要把索引数据添加Solr中的Core术语指的是一个单一的索引数据,而索引又是由多个Docum...

搭建zookeeper集群_其中一个报Mode: standalone,另外两个分别是leader和follower_weixin_30287169的博客-程序员秘密

用3个zookeeper搭建一个zookeeper集群,首先配置好一个zookeeper1,其余两个都是按照zookeeper1复制过来,然后稍微修改运行集群成功,查看zookeeper状态可以看出,zookeeper2是从节点,zookeeper3是主节点,但是zookeeper1是单机模式状态因为都是由1复制过去的,联想到在修改zoo.cfg时,其他节点都修改了端口...

×××保守国家秘密法(修订草案)_weixin_34236869的博客-程序员秘密

原文URL:http://news.xinhuanet.com/legal/2009-07/01/content_11634317.htm ×××保守国家秘密法(修订草案) 第一章 总 则 第一条 为了保守国家秘密,维护国家的安全和利益,保障改革开放和社会主义建设事业的顺利进行,制定本法。 ...

Python索引index常用的8种操作_python索引用法_Python热爱者的博客-程序员秘密

原始数据为 csv 文件。data'''date,temperature,humidity07/01/21,95,5007/02/21,94,5507/03/21,94,56'''一、读取时指定索引列默认索引从0开始,可通过 index_col设置索引列。import osos.chdir(r'C:\Users\111\Desktop')import pandas as pdimport numpy as np# 指定时间索引data = pd.read_csv('dat

【并查集】扩展域 带边权 离散化_扩展域并查集_Genevieve_xiao的博客-程序员秘密

并查集板子const int N=10010;int n,m;int fa[N];int find(int k){ if(fa[k]==k) return k; else return fa[k]=find(fa[k]);}int main(){ cin&gt;&gt;n&gt;&gt;m; for(int i=1;i&lt;=n;i++) fa[i]=i; for(int i=1;i&lt;=m;i++){ int x,y,z; cin&gt;&gt;z&gt;&gt;x

随便推点

后台开发学习笔记(二十二、libzmq安装和简单使用)_酱油师兄的博客-程序员秘密

ZeroMQ轻量级消息传递内核是一个库,该库扩展了标准套接字接口,具有传统上由专用消息传递中间件产品提供的功能。ZeroMQ套接字提供了异步消息队列,多种消息传递模式,消息过滤(订阅),对多种传输协议的无缝访问等等的抽象。...

练习2-8 计算摄氏温度(10 分)_实验2-2-2 计算摄氏温度_CLiuso的博客-程序员秘密

给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:2。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出一个华氏温度。输出格式:在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。输入样例:150输出样例:Celsius = 65#include &amp;lt;stdio.h&amp;gt;int main (){ int F,C; scanf(&quot;%...

【2020.11.13】二进制原码、反码、补码_补数为101011原机器数为多少_oalken的博客-程序员秘密

【有符号数的编码规则】 原码 最高位为符号位,其余各位为数值本身的绝对值。 反码 正数:反码与原码相同。 负数:符号位为1,其余位对原码取反。 补码 正数:补码与原码相同。 负数:符号位为1,其余位对原码取反+1(反码+1)。 例:数值:-1原码:1000 0001反码:1111 1110补码:1111 1111数值:-7原码:1000 0111反码:1111 1000补码:1111 1001【十六进制与二进制】

js监听点击事件以及页面滚动距离_陌影ml的博客-程序员秘密

js监听页面滚动距离window.onscroll = function() { //为了保证兼容性,这里取两个值,哪个有值取哪一个 //scrollTop就是触发滚轮事件时滚轮的高度 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; console.log("滚动距离" + scrollTop);}vue.js监听页面滚动距离 mounted() { windo

奇异值分解(SVD)原理详解_随机svd_xiaocong1990的博客-程序员秘密

一、奇异值与特征值基础知识:    特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧:   1)特征值:    如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式:    这时候λ就被称为特征向量v对应的特征

教你如何获取网站icon图标!!_iteye_10536的博客-程序员秘密

网站的图标一般都放在根目录,文件名为favicon.ico,比如android开发者社区(juapk)图标网址是:http://www.juapk.com/favicon.ico 

推荐文章

热门文章

相关标签