bugfix: subtract from datetime using a timedelta

if ever hour is 0, then there's a possibility of creating
a datetime with hour = -1. Using a timedelta when manipulating
datetimes is a better solution