// Create empty project and set calculation mode to Manual System::SharedPtr project = System::MakeObject(); project->set_CalculationMode(Aspose::Tasks::CalculationMode::Manual); // Set project start date and add new tasks project->Set(Prj::StartDate(), System::DateTime(2015, 4, 15)); System::SharedPtr task1 = project->get_RootTask()->get_Children()->Add(u"Task 1"); System::SharedPtr task2 = project->get_RootTask()->get_Children()->Add(u"Task 2"); // The necessary properties are set in manual mode System::Console::WriteLine(u"Task1.Id Equals 1 : {0} ", System::ObjectExt::Box(System::Equals(task1->Get(Tsk::Id()), 1))); System::Console::WriteLine(u"Task1 OutlineLevel Equals 1 : {0} ", System::ObjectExt::Box(System::Equals(task1->Get(Tsk::OutlineLevel()), 1))); System::Console::WriteLine(u"Task1 Start Equals 15/04/2015 08:00 AM : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(task1->Get(Tsk::Start()), System::DateTime(2015, 4, 15, 8, 0, 0)))); System::Console::WriteLine(u"Task1 Finish Equals 15/04/2015 05:00 PM : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(task1->Get(Tsk::Finish()), System::DateTime(2015, 4, 15, 17, 0, 0)))); System::Console::WriteLine(u"Task1 Duration Equals 1 day : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(System::ObjectExt::ToString(task1->Get(Tsk::Duration())), u"1 day"))); System::Console::WriteLine(u"Task2 Start Equals 15/04/2015 08:00 AM : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(task2->Get(Tsk::Start()), System::DateTime(2015, 4, 15, 8, 0, 0)))); System::Console::WriteLine(u"Task2 Finish Equals 15/04/2015 05:00 PM : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(task2->Get(Tsk::Finish()), System::DateTime(2015, 4, 15, 17, 0, 0)))); System::Console::WriteLine(u"Task2 Duration Equals 1 day : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(System::ObjectExt::ToString(task2->Get(Tsk::Duration())), u"1 day"))); // When we link two tasks together their dates are not recalculated in manual mode System::SharedPtr link = project->get_TaskLinks()->Add(task1, task2, Aspose::Tasks::TaskLinkType::FinishToStart); // Task 2 Start has not been changed System::Console::WriteLine(u"Task1 Start Equals Task2 Start : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(task1->Get(Tsk::Start()), task2->Get(Tsk::Start())))); System::Console::WriteLine(u"Task1 Finish Equals Task2 Finish : {0} ", System::ObjectExt::Box(System::ObjectExt::Equals(task1->Get(Tsk::Finish()), task2->Get(Tsk::Finish()))));