例如,我想计算2个活动之间的持续时间差异。活动1持续13天。活动2的持续时间为5天。我知道Microsoft Project在使用Durations时遇到了困难。提前谢谢!
需要回答:13-5 = 8 理想答案:8天
答案 0 :(得分:0)
如果您的持续时间都具有相同的时间单位,则可以执行简单的减法:
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
方法的其他变体允许您自己传递这些值。