// Read project System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName()); System::String projectName = u"SplitTaskFinishDate.mpp"; System::SharedPtr project = System::MakeObject(dataDir + projectName); // Find a split task System::SharedPtr splitTask = project->get_RootTask()->get_Children()->GetByUid(4); // Find the project calendar System::SharedPtr calendar = project->Get>(Prj::Calendar()); // Calculate task's finish date with different durations System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 8 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(8, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 16 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(16, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 24 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(24, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 28 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(28, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 32 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(32, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 46 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(46, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 61 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(61, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 75 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(75, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 80 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(80, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 120 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(120, 0, 0))); System::Console::WriteLine(System::String(u"Start Date: ") + splitTask->Get(Tsk::Start()).ToShortDateString() + u"\n+ Duration 150 hours\nFinish Date: " + calendar->GetTaskFinishDateFromDuration(splitTask, System::TimeSpan(150, 0, 0)));