分割タスクの終了日の計算
Contents
[
Hide
Show
]Microsoft Projectでは、スケジュールが中断された場合、タスクは分割できます。 Aspose.Tasks for .NETを使用すると、プログラムで 分割タスクの終了日を計算でき、レポート作成や自動化が容易になります。
分割タスクとは何ですか?
分割タスク は、中断(例:リソースの待機、外部依存)により実行が2つ以上の区間に分かれるタスクです。
Gantt Chart ビューで 点線でつながれた個別のバーとして表示されます:
終了日を計算するためのAPI
Calendar クラスは次のメソッドを提供します:
- GetTaskFinishDateFromDuration
- パラメーター:
- 分割タスク(Task object)
- タスクの期間(
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で手動で確認する必要がある作業を自動化します。 ****
よくある質問
Q:分割タスクの開始日も計算できますか?
- はい。
ActualStart
開始日Start
または完了日プロパティを取得できます。
Q:タスクに複数の分割がある場合も機能しますか?
- はい。このメソッドはすべての分割区間を考慮します。
Q:これを使用するのにMicrosoft Projectのインストールは必要ですか?
- いいえ。Aspose.Tasks for .NETはMicrosoft Projectに依存せずに動作します。