you can add an if statement to use a datediff('m',start,end) to see if a month is straddled or even multiple months are straddled and use that result to alter the day diff result as desired.
however, what both Ryan and I were trying to get at is that your written description of the problem was not matching the math as we understand it, therefore we were suggesting a solution that seems to match the needed math. I am not saying your solution is wrong but am cautioning you that it does not seem to match your description of your desired result.
Datediff('d',start,end) will always calculate the same way regardless of straddling over months or years. By choosing to add an if statement you are not doing consistent comparisons of date ranges.