gpt4 book ai didi

c# - ms 项目中的 Task.Duration 属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:05 25 4
gpt4 key购买 nike

我必须如何转换获得有效结果的 Task.Duration?我在 MSDN 中找到有关此属性的解释:

Gets or sets the duration (in minutes) of a task.

但它不能正常工作。

如果我将结果除以 60(小时中的分钟)和 24(一天中的小时),我会得到不正确的结果。

但是如果我除以 20 和 24 就没问题了。我不明白为什么。我在 .Net 3.5 和 Office 主要互操作程序集(Microsoft.Office.Interop.MSProject for office 2010)上使用 C#。

我使用该代码:

 void SetProperties(MSProject.Task o, string version)
{
Wbs = o.WBS.ToString();
Name = o.Name.ToString();
StartDate = (System.DateTime) o.Start;
FinishDate = (System.DateTime)o.Finish;
Iteration = version;
duration = (Convert.ToInt16(o.Duration)/10/24).ToString();//after result //divided by 2 I get correct result. Why?
}

谢谢

最佳答案

它没有像您预期的那样工作的原因是因为您一天没有 24 小时的工作时间。任务的持续时间是从开始到结束之间的工作时间,而不是绝对小时数。

由于一天中的默认工作小时数是 8,因此您将总分钟数除以 480(60 分钟 * 8 小时)得到天数。您计算的 20 * 24 恰好也等于 480,所以您偶然发现了正确的数字。

当然,不要指望开始 + 持续时间(以天为单位)等于您的完成日期。那是因为您还必须考虑非工作日,例如周末。因此,您可以有一个从周五开始的为期 3 天的任务,直到周二(5 个日历日)结束时才会完成。

关于c# - ms 项目中的 Task.Duration 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com