The Date complaint is

> JavaScript date objects are 1 indexed for years and days, but 0 indexed for months.

This mix of 0 and 1 indexing in calendar APIs goes back a long way. I first remember it coming from Java but I dimly recall Java was copying a Taligent Calendar API.