Calcular la fecha de finalización de una tarea dividida

En Microsoft Project, las tareas pueden dividirse si la programación se interrumpe. Con Aspose.Tasks for .NET, puede calcular programáticamente la fecha de finalización de tareas divididas, facilitando los informes y la automatización.

¿Qué son las tareas divididas?

Una tarea dividida es una tarea cuya ejecución se divide en dos o más segmentos debido a interrupciones (por ejemplo, espera de recursos, dependencias externas).

En Microsoft Project, las tareas divididas aparecen en el Gantt Chart vista como barras separadas conectadas por líneas punteadas:

comprobar si la tarea tiene divisiones

API para calcular la fecha de finalización

La Calendar clase proporciona el método:

Este método tiene en cuenta las reglas del calendario y los segmentos de interrupción de la tarea.

Ejemplo: Calcular la fecha de finalización de una tarea dividida en C#

Aquí hay un ejemplo en C# que muestra cómo calcular la fecha de finalización de una tarea dividida:

 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)));

Beneficios clave

Preguntas frecuentes

P: ¿También puedo calcular la fecha de inicio de una tarea dividida?

P: ¿Funciona esto si la tarea tiene múltiples divisiones?

P: ¿Necesito tener Microsoft Project instalado para usar esto?

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.