Fix Calculations for distance and for HP Recover

Distance has to be calculated using floats.
HP recovery has to account for when the user decides to check after midnight but hasn't slept yet.