분할 작업 종료일 계산
Contents
[
Hide
Show
]Microsoft Project에서는 일정이 중단되면 작업을 분할할 수 있습니다. Aspose.Tasks for .NET을 사용하면 프로그래밍 방식으로 분할된 작업의 종료일로 보고 및 자동화를 더 쉽게 할 수 있습니다.
분할 작업이란 무엇입니까?
하나의 분할 작업 는 실행이 중단되어 두 개 이상의 구간으로 나뉘는 작업입니다(예: 자원 대기, 외부 종속성).
Microsoft Project에서는 분할 작업이 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와 독립적으로 동작합니다.