我之前搜索过这个问题并发现:
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小时内?
答案 0 :(得分:1)
我认为你的比较是错误的。在你的情况下交换NSOrderedAscending
和NSOrderedDescending
。
我的记忆辅助是
[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) ...