我正在尝试使用从数据库获取的时间戳值来拆分任务。但问题似乎是当我将这些值传递给Task.Split方法时,我提出了异常。我让它工作一次但它不会再起作用了。
以下是日期函数的代码
Int32 start_date = (Int32)reader["pause_start"];
if (start_date != 0)
{
string start = UnixTimeStampToDateTime(start_date).ToString();
starttimes.Add(start);
}
Int32 finish_date = (Int32)reader["pause_stop"];
if (finish_date != 0)
{
string finish = UnixTimeStampToDateTime(finish_date).ToString();
finishtimes.Add(finish);
}
以下是拆分的代码:i是循环中的索引,其中我循环遍历每个任务。
var start = DateTime.Parse(starttimes.ToArray()[i]);
var finish = DateTime.Parse(finishtimes.ToArray()[i]);
this.Application.ActiveProject.Tasks[taskid].Split(start, finish);
这是MSProject中日期的格式
26.12.16 08.00
,我试图用(dd.MM.yy HH.mm)格式化DateTime但没有成功。
这是我得到的完整例外:
System.Runtime.InteropServices.COMException (0x800A044D): The argument value is not valid.
ved Microsoft.Office.Interop.MSProject.Task.Split(Object StartSplitOn, Object EndSplitOn)
ved Fullkontroll.FullControl.getPause(Int32 taskid) i C:\Users\mar_s\Source\Repos\FullControl\Fullkontroll\Fullkontroll\FullControl.cs:linje 826
感谢您的每一次帮助
更新:05.01.2017 - 15:45 事实证明,整个事情是由于MSProject拒绝了分割的开始和结束日期相似的日期。所以请注意自己,下次我添加一个异常,我会在for迭代中捕获它,而不是在外面。通过这种方式,我至少可以获得有效日期