1

例如,我想计算 2 个活动之间的持续时间差异。活动 1 有 13 天的持续时间。活动 2 有 5 天的持续时间。我知道 Microsoft Project 在使用持续时间进行操作时遇到困难。提前致谢!

所需答案:13-5 = 8 理想答案:8 天

4

1 回答 1

0

如果您的 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,允许您自己传递这些值。

于 2018-01-18T10:10:07.927 回答