if (field == 2) {
field = c.get(Calendar.MONTH) + 1;
}
return c.get(field);
Вы получаете правильный месяц в качестве индекса, а затем используете этот индекс для получения другого поля, которое будет неизвестно и связано с тем, как сохраняются константы.Просто верните значение раньше, не используя второй get
.
Возможно, вы имели в виду
if (field == 2) {
field = Calendar.MONTH;
}
return c.get(field) + 1;
, но я не понимаю, почему вы переопределяете те константы, которые используют ужепри условии, ..