I would dispute that your solution is more efficient in terms of machine resources. Compared to my final solution (now thats a dangerous turn of phrase):
(simplified)
mine: 2 DateSerials, 1 DateDiff
yours: 2 DateSerials, 1 DateDiff, 1 Case statement
Its more difficult to do a comparison between your code and my more 'mathematical' solution, and also, I suspect, moot. All solutions will be fast enough.
In terms of programmer resources, this forum demonstrates that there is a significant amount of programmer resource at your disposal, should you require it. Admittedly, it can sometimes be a slow solution, but it does have the advantage of generally being well-informed.
However, your code does have one advantage - legibility. Compared to the 'mathematical' solution, your code is very easy to understand. Its a tough call as to how important this is, but my take on it is that in a commercial development environment, you shouldn't 'dumb down' the code, you should 'smart up' the developers. I understand that this is not necessarily the case here, and accept the criticisms you have made.
Also, with a comment or 2, even my obfuscated code could almost become understandable
Chaz