【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
1.应用场景:
实际工作中,经常会用到时间之间的比较
2.实现目标:
简述常用的各种NSDate时间之间比较的方法
3.代码说明:
1.直观比较,没有计算时间差值;
/** 与otherDate比较,时间相同返回YES*/
- (BOOL)isEqualToDate:(NSDate *)otherDate;
/**与anotherDate比较,返回较早的那个日期*/
- (NSDate *)earlierDate:(NSDate *)anotherDate;
/**与anotherDate比较,返回较晚的那个日期*/
- (NSDate *)laterDate:(NSDate *)anotherDate;
- (NSComparisonResult)compare:(NSDate *)other;
该方法用于排序时调用:
. 当实例保存的日期值与anotherDate相同时返回NSOrderedSame
. 当实例保存的日期值晚于anotherDate时返回NSOrderedDescending
. 当实例保存的日期值早于anotherDate时返回NSOrderedAscending
2.计算时间差,根据已有时间差算出另一个时间点
/** 计算明天这个时间点*/
NStimeInterval a_daySecond = 60*60*24;
NSDate *tommorrow = [NSDate dateWithTimeIntervalSinceNow:a_daySecond];
/** 根据已知时间,求相差 timeInterval s后的时间*/
NStimeInterval timeInterval = 60*60;
NSDate *date = [NSDate date];
NSDate *needDate = [date addTimeInterval:timeInterVal];
/** 比较明天与现在时间相差多少秒*/
NSDate *date = [NSDate date];
NSTimeInterval secondsInterval = [date timeIntervalSinceDate:tomorrow];