I never adjusted calculateNthWeedayOfMonth with 1 == Monday instead of 0

Plus you can count arbitrary weeks from the end of the month instead of
just 1.