Point(s) taken. I know of the Leopard-only method but, it's Leopard-only. Not a luxury we all have (at least not yet).

I think the range currently returned is just as inaccurate though. If you have (28, 29, 31, 1, 2, 3, 4), the range {1, 31} implies that 5, 6, 7..27 are in that range, which they aren't. It's the similar to the logic that {28, 7} implies numbers greater than 31.

In some ways, I think it might have been better if Apple treated this as an undefined computation and returned NSNotFound.