>n=ldStartDate - ldOtherDate + 1
Maybe just a misleading name, but start date typically is lower then the other date, if you subtract otherdate from startdate you get a negative number.
If you want a difference of dates either use ABS() or always subtract the lower/earlier/start date from the higher/later/end date.
Adding +1 is correct and can be seen from the extreme case both dates are equal you still have 8 hours on that single date, not 0.
In regard of the datepicker I second Mike. Also note what you tried and what problems you have with it. There are alternatives to the olecontrol, which doesn't work native on newer Windows versions, but you are allowed to redistribute and setup the ole control needed for the dtpicker and it works even on win8, though it looks outdated (no pun intended).
Bye, Olaf.