// Create new project System::SharedPtr splitTaskProject = System::MakeObject(); // Get a standard calendar System::SharedPtr calendar = splitTaskProject->Get>(Prj::Calendar()); // Set project's calendar settings splitTaskProject->Set(Prj::StartDate(), System::DateTime(2000, 3, 15, 8, 0, 0)); splitTaskProject->Set(Prj::FinishDate(), System::DateTime(2000, 4, 21, 17, 0, 0)); // Add a new task to root task System::SharedPtr rootTask = splitTaskProject->get_RootTask(); rootTask->Set(Tsk::Name(), u"Root"); System::SharedPtr taskToSplit = rootTask->get_Children()->Add(u"Task1"); taskToSplit->Set(Tsk::Duration(), splitTaskProject->GetDuration(3)); // Create a new resource assignment and generate timephased data System::SharedPtr splitResourceAssignment = splitTaskProject->get_ResourceAssignments()->Add(taskToSplit, nullptr); splitResourceAssignment->TimephasedDataFromTaskDuration(calendar); // Split the task into 3 parts. // Provide start date and finish date arguments to SplitTask method which will be used for split splitResourceAssignment->SplitTask(System::DateTime(2000, 3, 16, 8, 0, 0), System::DateTime(2000, 3, 16, 17, 0, 0), calendar); splitResourceAssignment->SplitTask(System::DateTime(2000, 3, 18, 8, 0, 0), System::DateTime(2000, 3, 18, 17, 0, 0), calendar); splitResourceAssignment->Set(Asn::WorkContour(), Aspose::Tasks::WorkContourType::Contoured); // Save the Project System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName()); splitTaskProject->Save(dataDir + u"CreateSplitTasks_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);