Fixes invalid early out of month/year truth test + ensure month is between 1 and 12

* The month / year early out test was not return false right away if month or year was truthy.
* The months weren't capped at 12, made it possible to enter dates like 99/2020
* Added test cases.