This evening I've been playing with the time object I sort of started to create before (and haven't been happy with). I'm still not sure I'm doing it right, but I'm pretty sure that it's better than it was.
These two pages and the best part of a decent Rioja have got me to where I am with this.
I'm still not happy with it but I think it's "time" (and I've renamed that a lot and will no doubt do again) to put it to sleep and move on to the missing functionality.
Still think I'm on target for the functional level of this working by next Wednesday (and I do think that what I've done has helped), but I have been reminded of events that are occurring over the next few days. Tonight was an example of playing with code in a way that I wouldn't be able to do at work, it's possible that there's a good reason for that.
Here's the link to the github commit from this evening: