Look, we have all been there. Counting while starting at zero is fucking hard.
It isn't surprising that a programmer made an off-by-one error, they happen all the time. But it is surprising that it made it through a release without being caught by some sort of QA process.
I clicked on this articled to find a comment that would say "in android the months index start at 0 due to traditional/logical indexing". You have success.
While QA testing is not. Specially it is current year.
And boundary testing, is that hard too or is it a common place technique?