Application.DateDifference will always return 0 if the first date passed in is later than the second date passed in.
Application.DateDifference
Add a check to make sure you put the earlier date as the first argument.