Calcul de la date de fin d'une tâche fractionnée

Dans Microsoft Project, les tâches peuvent être fractionnées si le planning est interrompu. Avec Aspose.Tasks for .NET, vous pouvez calculer programmatiquement la date de fin des tâches fractionnées, facilitant la génération de rapports et l’automatisation.

Que sont les tâches fractionnées ?

Une tâche fractionnée est une tâche dont l’exécution est divisée en deux segments ou plus en raison d’interruptions (par exemple, attente de ressources, dépendances externes).

Dans Microsoft Project, les tâches fractionnées apparaissent dans la Gantt Chart vue comme barres séparées reliées par des lignes pointillées:

vérifier que la tâche comporte des fractionnements

API pour calculer la date de fin

La Calendar classe fournit la méthode :

Cette méthode prend en compte les règles du calendrier et les segments d’interruption de la tâche.

Exemple : calcul de la date de fin d’une tâche fractionnée en C#

Voici un exemple en C# montrant comment calculer la date de fin d’une tâche fractionnée :

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

Principaux avantages

Foire aux questions

Q : Puis-je également calculer la date de début d’une tâche fractionnée ?

Q : Cela fonctionne-t-il si la tâche comporte plusieurs fractionnements ?

Q : Dois-je avoir Microsoft Project installé pour utiliser cela ?

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.