Метод isDateOdd() возвращает неверное значение. Протестируй его работу с разными датами.