Если ваши длительности имеют одинаковые единицы времени, вы можете выполнить простое вычитание:
Duration d1 = Duration.getInstance(13, TimeUnit.DAYS);
Duration d2 = Duration.getInstance(5, TimeUnit.DAYS);
Duration result = Duration.getInstance(d1.getDuration() - d2.getDuration(), TimeUnit.DAYS);
Если у вас разные единицы времени, вам нужно сначала выполнить преобразование:
Duration d1 = Duration.getInstance(13, TimeUnit.DAYS);
Duration d2 = Duration.getInstance(40, TimeUnit.HOURS);
Duration d3 = d2.convertUnits(TimeUnit.DAYS, project.getProjectProperties());
Duration result = Duration.getInstance(d1.getDuration() - d3.getDuration(), TimeUnit.DAYS);
В приведенном выше примере вторая продолжительность указана в часах (при условии, что рабочий день составляет 8 часов), которые мы конвертируем в дни перед расчетом разницы. Обратите внимание, что мы передаем свойства проекта методу convertUnits
. Это предоставляет подробную информацию о том, сколько часов в рабочем дне и так далее, чтобы обеспечить точное преобразование. Существуют и другие варианты метода convertUnits
, которые позволяют вам самостоятельно передавать эти значения.
person
Jon Iles
schedule
18.01.2018