Sounds like a cool idea. Would need this sort of correction :
which means it could take a couple of days to 'train', in order to be certain.
For the best precision, you'd probably do a simple sliding-data- match, where maybe the last 7? days of readings, are moved along to a point of least-errors. (and maybe a cloudy-day default, where it just increments the day ?
I don't see why you think you can't get 'correct day' precision out of this ?
Pushing the actual-time precision is likely to be more challenging ?
-jg