Месяцы идут от 0 до 11, если мы задаем 12 месяц, то getMonth меняет его на 0, но увеличивает год на 1, если задаем 24, то на 2 соответственно. И я уже голову сломал как откорректировать месяц в этой задаче не затрагивая год!