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.
And boundary testing, is that hard too or is it a common place technique?
While QA testing is not. Specially it is current year.