Objective-C语言日期比较

示例

NSDate在Objective-C中有4种比较s的方法:

  • - (BOOL)isEqualToDate:(NSDate *)anotherDate

  • - (NSDate *)earlierDate:(NSDate *)anotherDate

  • - (NSDate *)laterDate:(NSDate *)anotherDate

  • - (NSComparisonResult)compare:(NSDate *)anotherDate

考虑以下使用2个日期NSDate date1 = July 7, 2016和的示例NSDate date2 = July 2, 2016:

NSDateComponents *comps1 = [[NSDateComponents alloc]init];

comps.year = 2016;

comps.month = 7;

comps.day = 7;

NSDateComponents *comps2 = [[NSDateComponents alloc]init];

   comps.year= 2016;

   comps.month= 7;

   comps.day= 2;

NSDate* date1 = [calendar dateFromComponents:comps1]; //初始化为2016年7月7日 

NSDate* date2 = [calendar dateFromComponents:comps2]; //初始化为2016年7月2日

现在NSDate已经创建了,可以对其进行比较:

if ([date1 isEqualToDate:date2]) {

    //由于两个日期不相等,因此这里返回false

}

我们还可以使用类的earlierDate:和laterDate:方法NSDate:

NSDate *earlierDate = [date1 earlierDate:date2];//返回两个日期中的较早日期。在此,orateDate将等于date2。

NSDate *laterDate = [date1 laterDate:date2];//返回2个日期中的较晚日期。在这里,afterDate将等于date1。

最后,我们可以使用NSDate的compare:方法:

NSComparisonResult result = [date1 compare:date2];

    if (result == NSOrderedAscending) {

        //Fails

        //如果date1早于date2,请来到这里。就我们而言,它不会到这里来。

    }else if (result == NSOrderedSame){

        //Fails

        //如果date1与date2相同,请来到这里。就我们而言,它不会到这里来。

    }else{//NSOrderedDescending

        

        //Succeeds

        //如果date1晚于date2,请来到这里。就我们而言,它将来到这里

    }

           

以上是 Objective-C语言日期比较 的全部内容, 来源链接: utcz.com/z/330692.html

回到顶部