Как создать одно выражение, отображающее разницу во времени между двумя датами в виде лет, месяцев, дней, часов, минут, секунд
Как я могу создатьне замужем отчет о яшме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, я не хочу использовать объявление переменной, поскольку это сделает решение недействительным, если пользователю потребуется использовать его для параметров.