iOS关于NSDate大小的比较

2019-05-08  本文已影响0人  0无敌小宋0

        前段时间做了关于喂食计划方面的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:贴上小弟画的时间选择器

哈哈😁
上一篇下一篇

猜你喜欢

热点阅读