Zoom based on the date in the middle of the viewport, not on the left edge of the viewport. Add a DateDelta utility to compute an approximate delta based on a number of incremements, to allow computing the center date.