In fact it is scrolling consistently 2.5 days further forward than it should.
In the scroll() function, if I add this line after the time variable declaration in the original example:
time.setDate(time.getDate() + 3);
thus fooling the widget into thinking it's now 4th June, it scrolls to mid-way on the 6th. And it is consistent if you change the '3' for anything else.
How do I remedy this?