> Shouldn't the nearest 12th day of the month after the 14th of January be 2018-02-12 ?

You're right, thanks - fixed! Small typos like those are the hill I'll die on.

> But I would expect curr.last_of_month().tomorrow().unwrap(), to return 2018-03-01 ???

This case actually matches the `Ordering::Less` branch (14 < 31), so it hits this arm:

    Ordering::Less => curr + Span::new().days(day - curr.day()),
... yielding this calculation:

    2018-02-14 + (31 - 14) = 2018-03-03
Since the actual next occurrence is on 2018-03-31, 2018-03-03 is a valid guess (just a suboptimal one).

I've rephrased this section in the article to show the calculation more clearly now.