gpt4 book ai didi

iphone - 为什么 NSDate 不能使用 < 或 > 进行比较?

转载 作者:可可西里 更新时间:2023-11-01 17:09:44 26 4
gpt4 key购买 nike

NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSLog([@"today is " stringByAppendingString:[dateFormat stringFromDate:date]]);
NSLog([@"firstBirthdayDate is " stringByAppendingString:[dateFormat stringFromDate:firstBirthdayDate]]);
NSLog([@"secondBirthdayDate is " stringByAppendingString:[dateFormat stringFromDate:secondBirthdayDate]]);
if ([firstBirthdayDate isEqualToDate:secondBirthdayDate])
NSLog(@"First date is the same as second date");
if (firstBirthdayDate < date)
NSLog(@"First date is earlier than today");
else
NSLog(@"First date is later than today");

if (secondBirthdayDate < date)
NSLog(@"Second date is earlier than today");
  • 今天是 11/08/2012
  • 第一个生日日期是 01/23/2012
  • secondBirthdayDate 是 01/23/2012

这是我在日志中得到的内容:

First date is the same as second date

First date is later than today

Second date is earlier than today

我觉得我要疯了......

最佳答案

使用 if ([date1 isEqualToDate:date2])用于比较两个日期,否则您可以使用以下内容,

if ([date1 compare:date2] == NSOrderedSame)

if ([date1 compare:date2] == NSOrderedAscending)

if ([date1 compare:date2] == NSOrderedDescending)

> , <=仅用于比较非指针。基本上我的理解是,当您使用这些运算符时,它可能会比较内存地址而不是其中的值。所以你会得到意想不到的结果。

从逻辑上讲,它是这样工作的:

    if (obj1 > obj2) {
return NSOrderedDescending;
}

if (obj1 < obj2) {
return NSOrderedAscending;
}

if (obj1 == obj2) {
return NSOrderedSame;
}

您可以使用任何比较语句来比较日期。

关于iphone - 为什么 NSDate 不能使用 < 或 > 进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com