【发布时间】:2021-11-03 07:24:33
【问题描述】:
我正在尝试根据这些的最早日期和最晚日期创建甘特图:
workpackages[0] = new WorkPackage("Package 1", new DateTime(2021, 1, 1), new DateTime(2021, 1, 2));
workpackages[1] = new WorkPackage("Package 2", new DateTime(2021, 2, 2), new DateTime(2021, 3, 3));
workpackages[2] = new WorkPackage("Package 3", new DateTime(2021, 3, 6), new DateTime(2021, 6, 10));
workpackages[3] = new WorkPackage("Package 4", new DateTime(2021, 4, 2), new DateTime(2021, 6, 5));
workpackages[4] = new WorkPackage("Package 5", new DateTime(2021, 3, 2), new DateTime(2021, 4, 5));
workpackages[5] = new WorkPackage("Package 6", new DateTime(2021, 4, 2), new DateTime(2021, 5, 5));
workpackages[6] = new WorkPackage("Package 7", new DateTime(2021, 2, 4), new DateTime(2021, 3, 3));
程序会创建一个数组,该数组的长度与最早日期 (1.1.2021) 和最晚日期 (10.6.2021) 之间的时间跨度一样长,即 160 天。现在我可以将所有日期放在一起,例如 1.1.2021、2.1.2021、3.1.2021……但我希望用户决定他想要多少抽动。因此,如果他输入 10,他应该得到 12 个日期(开始和结束),它们之间的距离是固定的,如果他输入 3 作为他想要的抽动次数,他会得到开始日期和结束日期,以及中间的日期这两个。但是我需要做些什么计算呢?
顺便说一句,如果你不知道甘特图是什么,this is one。
到目前为止,这是我的方法,但我无法解决问题:
public void ArrayDate(DateTime start, DateTime end, int n)
{
double timeSpan;
timeSpan = (end - start).TotalDays;
DateTime[] alldates = new DateTime[(int)timeSpan];
for (int i = 0; i < timeSpan; i++)
{
alldates[i] = start.AddDays(i);
}
}
【问题讨论】:
标签: c# gantt-chart