Мне нужно вычислить в Java количество месяцев между двумя объектами Date, но только для тех, которые относятся к данному году.
Например: p>
01.04.2013 - 30.07.2013, год=2013 => result=4
01.10.2013 - 30.02.2014, год=2013 => result=3
Для второго примера результат равен 3, поскольку в данном 2013 году находятся только октябрь, ноябрь и декабрь. Остальные месяцы относятся к 2014 году.
01.10.2012 - 30.02.2014, год=2013 => result=12
У меня есть этот код, но идентификатор не работает для следующего случая 01.04.2013 - 30.07.2013, год=2012 => result=0< /p>
Calendar startCalendar = new GregorianCalendar();
startCalendar.setTime(c.getStartDate());
Calendar endCalendar = new GregorianCalendar();
endCalendar.setTime(c.getEndDate());
Calendar calculatedStartDate = new GregorianCalendar();
Calendar calculatedEndDate = new GregorianCalendar();
if (startCalendar.get(Calendar.YEAR) < year) {
calculatedStartDate.setTime(new GregorianCalendar(year, Calendar.JANUARY, 1).getTime());
}
else {
calculatedStartDate.setTime(c.getStartDate());
}
if (endCalendar.get(Calendar.YEAR) > year) {
calculatedEndDate.setTime(new GregorianCalendar(year, Calendar.DECEMBER, 31).getTime());
}
else {
calculatedEndDate.setTime(c.getEndDate());
}
int diffMonth = calculatedEndDate.get(Calendar.MONTH) - calculatedStartDate.get(Calendar.MONTH);
return diffMonth + 1;
Подробнее здесь: https://stackoverflow.com/questions/299 ... rrent-year
Количество месяцев между двумя датами в текущем году ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение