The Instant returned by the Date Picker is the Instant the day starts.
That would make the Duration in milliseconds from Now() to the start of today always a negative number, except if you set the DatePicker exactly at midnight and run this code.
1 Day = 24 hours
So, if some time of the day has already passed then the time till Midnight will be less than 24 hours and because 24 hours have not completed, the number of days stays 0.
To fix this you should add the current time to the day.