iOS关于NSDate大小的比较
前段时间做了关于喂食计划方面的APP,里面时间的设定用到了时间选择器,于是在UIPickView的基础上重写了选择器,遇到了最大时间和最小时间的问题。下面总结一下NSDate的比较。
这里先要介绍NSDate的方法:- (NSComparisonResult)compare:(NSDate *)other,这是2个date比较大小的方法,有个返回值NSComparisonResult类型,这是个枚举类型数据,其定义如下
🌰:NSComparisonResultresult = [aDate compare:bDate];
typedef NS_CLOSED_ENUM(NSInteger, NSComparisonResult) {
NSOrderedAscending = -1L, // aDate < bDate
NSOrderedSame, // aDate == bDate
NSOrderedDescending // aDate > bDate
};
当然compare也不仅仅适用于date大小的比较,同样可以比较NSString、NSNumber等相关类型的大小比较,如:[@"a" compare:@"b"],字符串的大小比较主要会根据字符串中的字符的ASCII码逐个进行比较。
下面贴上我写的代码
//比较2个date的大小 a>b = -1; a=b = 0; a
+ (NSInteger )compareDate:(NSDate* )aDate withDate:(NSDate* )bDate
{
NSInteger tag = 0;
NSComparisonResult result = [aDate compare:bDate];
if(result == NSOrderedSame)
{
//相等
tag=0;
}
else if (result == NSOrderedAscending)
{
//bDate比aDate大
tag = 1;
}
else
{
//bDate比aDate小
tag = -1;
}
return tag;
}
时间仓促,错漏之处敬请指出,谢谢!
ps:贴上小弟画的时间选择器
哈哈😁