当前位置: 首页 > 编程笔记 >

Objective-C语言日期比较

养学
2023-03-14
本文向大家介绍Objective-C语言日期比较,包括了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 Runtime Runtime 是什么? Runtime 是 Objective-C 区别于 C 语言这样的静态语言的一个非常重要的特性。对于 C 语言,函数的调用会在编译期就已经决定好,在编译完成后直接顺序执行。但是 OC 是一门动态语言,函数调用变成了消息发送,在编译期不能知道要调用哪个函数。所以 Runtime 无非就是去解决如何在运行时期找到调用方法这样的问题。 对

  • 本文向大家介绍Objective-C语言创造,包括了Objective-C语言创造的使用技巧和注意事项,需要的朋友参考一下 示例 要么 或使用适当的文字语法            

  • 本文向大家介绍Objective-C语言XML解析,包括了Objective-C语言XML解析的使用技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍Objective-C语言返回值,包括了Objective-C语言返回值的使用技巧和注意事项,需要的朋友参考一下 示例 当要从方法返回值时,请将要返回的类型放在第一组括号中。 您要返回的值放在return关键字之后;

  • 本文向大家介绍Objective-C语言记录中,包括了Objective-C语言记录中的使用技巧和注意事项,需要的朋友参考一下 示例 的第一个参数NSLog是,NSString包含日志消息格式。其余参数用作替代格式说明符的值。 格式与完全相同printf,除了用于%@任意Objective-C对象的附加格式说明符。这个: 等效于:            

  • Runloop 是和线程紧密相关的一个基础组件,是很多线程有关功能的幕后功臣。尽管在平常使用中几乎不太会直接用到,理解 Runloop 有利于我们更加深入地理解 iOS 的多线程模型。 Runloop 基本概念 Runloop 是什么?Runloop 还是比较顾名思义的一个东西,说白了就是一种循环,只不过它这种循环比较高级。一般的 while 循环会导致 CPU 进入忙等待状态,而 Runloop