在NSOrderedAscending和NSOrderedDescending的特定范围内的date
我有这个代码:
NSComparisonResult compareStart = [firstDate compare: dateSelected]; NSComparisonResult compareEnd = [secondDate compare: dateSelected]; if (((compareStart == NSOrderedAscending) || (compareStart == NSOrderedSame)) && (compareEnd == NSOrderedDescending))
但它不进入“如果”当firstDate = dateSelected或secondDate = dateSelected …为什么?
你确定当firstDate等于dateSelected时,select的date早于secondDate吗? 目前你的逻辑是:firstDate <= dateSelected <secondDate。 如果你想要firstDate <= dateSelected <= secondDate,那么你需要实现的代码如下:
NSComparisonResult compareStart = [firstDate compare: dateSelected]; NSComparisonResult compareEnd = [secondDate compare: dateSelected]; if ( (compareStart == NSOrderedAscending || compareStart == NSOrderedSame) && (compareEnd == NSOrderedDescending || compareEnd == NSOrderedSame)) { // some code }
更新:
要比较两个NSDate而不依赖于时间,请参阅: 比较两个NSDates并忽略时间分量