例如,我想计算 2 个活动之间的持续时间差异。活动 1 有 13 天的持续时间。活动 2 有 5 天的持续时间。我知道 Microsoft Project 在使用持续时间进行操作时遇到困难。提前致谢!
所需答案:13-5 = 8 理想答案:8 天
如果您的 Duration 都具有相同的时间单位,则可以执行简单的减法:
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
,允许您自己传递这些值。