If one date is before 1900 and one is after you will get an answer 1 day too large. This is because of a (deliberate) bug in Excel that treats 1900 as if it was a leap year (which it wasn't).
A deliberate bug? Microsoft copied the bug from Lotus 1-2-3 to ensure compatibility between the two spreadsheets. Amazing but true.