Извините, я пытался ввести код для даты Months
и Days
, оставаясь, к сожалению, я получаю неправильный результат. Любая помощь будет оценена. Благодаря!Как получить месяцы и дни между двумя датами
SimpleDateFormat formatter= new SimpleDateFormat("dd-MM-yyyy");
String sdate = "08-02-2016";
String edate = "02-02-2017";
Date startdate = formatter.parse(sdate);
Date enddate = formatter.parse(eddate);
Calendar startCalendar = new GregorianCalendar();
startCalendar.setTime(startdate);
Calendar endCalendar = new GregorianCalendar();
endCalendar.setTime(enddate);
int diffYear = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR); //effdate - currdate
int diffMonth = diffYear * 12 + endCalendar.get(Calendar.MONTH) -startCalendar.get(Calendar.MONTH);
int diffDay= endCalendar.get(Calendar.DAY_OF_MONTH) -startCalendar.get(Calendar.DAY_OF_MONTH);
Ожидаемый результат: 11 месяцев, 25 дней
P/s: JodaTime не применяется.
Вы используете Java 8? Никогда не стоит пытаться рассчитать разницу между датами путем вычитания, она не учитывает особенности даты/времени, поэтому JodaTime существует ... – MadProgrammer
Все, что вам нужно, это дополнительная логика для рассмотрения дела где день CURDATE меньше, чем день EFFDATE. Какая часть этого вызывает у вас трудности? –
Да, как говорит MadProgrammer, это просто в Java 8 - вы используете 'Period.between (...)', передавая пару объектов LocalDate. Итак, у вас есть Java 8? –