Обчислення дати завершення розділеного завдання
У Microsoft Project, завдання можна розділити, якщо розклад перервано. З допомогою Aspose.Tasks for .NET, ви можете програмно обчислити дату завершення розділених завдань, що спрощує звітність та автоматизацію.
Що таке розділені завдання?
Розділене завдання — це завдання, виконання якого поділено на два або більше відрізків через перерви (наприклад, очікування ресурсів, зовнішніх залежностей).
У Microsoft Project розділені завдання відображаються в діаграма Ганта у поданні як окремі смуги, з’єднані пунктирними лініями:
API для обчислення дати завершення
Клас Calendar клас надає метод:
- GetTaskFinishDateFromDuration
- Параметри:
- Розділене завдання (об’єкт Task)
- Тривалість завдання (
Duration
)
- Повертає:
- Обчислену дату завершення (
DateTime
)
- Обчислену дату завершення (
- Параметри:
Цей метод враховує календарні правила та сегменти перерв завдання.
Приклад: обчислення дати завершення розділеного завдання в C#
Ось приклад на C#, який показує, як обчислити дату завершення розділеного завдання:
1Project project = new Project("New Project.mpp");
2
3// Find a split task
4Task splitTask = project.RootTask.Children.GetByUid(4);
5
6// Find the project calendar
7Calendar calendar = project.Get(Prj.Calendar);
8
9// Calculate task's finish date with different durations
10Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 8 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(8, 0, 0)));
11Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 16 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(16, 0, 0)));
12Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 24 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(24, 0, 0)));
13Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 28 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(28, 0, 0)));
14Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 32 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(32, 0, 0)));
15Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 46 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(46, 0, 0)));
16Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 61 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(61, 0, 0)));
17Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 75 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(75, 0, 0)));
18Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 80 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(80, 0, 0)));
19Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 120 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(120, 0, 0)));
20Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 150 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(150, 0, 0)));
Основні переваги
- Точно обчислює дати завершення для перерваних завдань.
- Враховує календарний робочий час та розриви.
- Працює з MPP та форматами проектів XML.
- Автоматизує те, що в іншому випадку потребує ручної перевірки у Microsoft Project.
Поширені запитання
П: Чи можна також обчислити дату початку розділеного завдання?
- Так. Ви можете отримати
ActualStart
абоStart
властивість залежно від типу завдання.
П: Чи працюватиме це, якщо завдання має кілька розривів?
- Так. Метод враховує всі сегменти розривів.
П: Чи потрібно встановлювати Microsoft Project для використання цього?
- Ні. Aspose.Tasks for .NET працює незалежно від Microsoft Project.