Как создать одно выражение, отображающее разницу во времени между двумя датами в виде лет, месяцев, дней, часов, минут, секунд

Как я могу создатьне замужем отчет о яшмеJRExpression которые визуализируют разницу между двумяjava.util.Date в формате гг год год (ы) месяц (ы) дд день (ы), чч час (ы), мм минуты (с), сс секунды (с)

java.util.Date startDate
java.util.Date endDate

Выражение JRE - это одна строка, где объявление переменных не разрешено, однако вы можете использовать условные операторы, используя синтаксисboolean ? yes:noдля тех, кто не знаком, представьте себе одну линиюSystem.out.println();

Пример желаемого результата (если у вас есть хорошее решение, удалите описание модуля, когда его нет, и рассмотрите единственное / множественное число, но это не обязательно, если это серия операторов if):

2 года, 8 месяцев, 12 дней, 2 часа, 53 минуты, 10 с

1 час, 1 минута

2 февраля - 4 марта и 4 марта - 6 апреля - «1 месяц, 2 дня», однако можно игнорировать переход на летнее время - спасибо @Affe

Дополнительные требования:

Только отчет о яшмезависимости можно использовать (йода не входит).Желательно JDK 1,7 или менее (1,8 принимается, если это единственное решение)

Нет необходимости форматировать ответ, так как выражение отчета яшмы может быть простымSystem.out.println код (я с радостью отредактирую ваш ответ позже, чтобы добавить код выражения отчета Jasper). пример

((endDate.getTime()-startDate.getTime()) / (60 * 60 * 1000)) % 24 + " hour(s), " +  
((endDate.getTime()-startDate.getTime()) / (60 * 1000)) % 60 + " minute(s)"

Что я пробовал:

Я отвечаю на несколько вопросов в разделе отчетов о джаспере SO, и этот вопрос часто встречается при генерации отчетов. Я предпочел бы хороший ответ из раздела java, который я могу связать, а не передавать свой код по этой проблеме (который я знаю только для частичного решения в качестве примера)

Это пример по вопросу вяшма-отчет: Расчет разности времени и даты

Некоторая ссылка код:

Рассчитать разницу времени / даты в Яве

Как найти продолжительность разницы между двумя датами в Java?

Для тех, кто знаком с отчетом jasper, я не хочу использовать объявление переменной, поскольку это сделает решение недействительным, если пользователю потребуется использовать его для параметров.

Ответы на вопрос(1)

Ваш ответ на вопрос