0

我之前搜索过这个问题,发现:

if (([dateToCompare compare:4HoursEarlier] == NSOrderedAscending) && ([dateToCompare compare:specifiedDate] == NSOrderedDescending))
{
    NSLog(@"dateToCompare between 4HoursEarlier and specifiedDate");
    // do something
}

不幸的是,这似乎不起作用(NSLog 永远不会被打印)。

我有一个遍历数组(包含日期)的 for 循环。我需要检查指定日期是否在另一个日期的 4 小时内。我有(伪代码):

specifiedDate = a date I specify;
dateToCompare = current date gathered in for loop;
4HoursEarlier = 4 hours before specifiedDate;

如何检查指定日期是否在 dateToCompare(从数组/for 循环中收集的日期)的 4 小时内?

4

1 回答 1

1

我认为您的比较方式是错误的。交换 NSOrderedAscendingNSOrderedDescending在您的情况下。

我的记忆辅助工具是

[obj1 compare:obj2] == NSOrderedAscending  : obj1, obj2 is an ascending sequence
[obj1 compare:obj2] == NSOrderedDescending : obj1, obj2 is an descending sequence

因此,要检查是否dateToCompare迟于fourHoursEarlier,您必须使用

if ([dateToCompare compare:fourHoursEarlier] == NSOrderedDescending) ...
于 2013-04-17T21:58:23.027 回答