Fix `day` functionality, Ensure `duration` works for same day + test improvement

This fixes the `day` function to work correctly for day terms in the past (eg yesterday, last week) by considering the absolute difference. The 2nd commit ensures the `duration` function works for datetime objects that happened on the same day by checking the absolute of the time difference.

This also ensures the `total` (total seconds) in the `duration` function is rounded up correctly, resulting in tests which all now pass consistently.  Previously, results were affected by the milliseconds portion of the current time.