Fix time processing on 32 bit for timestamps further in the past

The translation table was used wrong, since it refers to the first day
of the given month and not the day of the current date we're processing.

Also simplifies some of the month handling so we don't have to do + 1
and - 1 in a bunch of different places.