Calendar.IsDayWorking
Contents
[
Hide
]Calendar.IsDayWorking method
Determines whether the day is working day.
public bool IsDayWorking(DateTime dt)
Parameter | Type | Description |
---|---|---|
dt | DateTime | The date to check day is working for. |
Return Value
True if the day is working day.
Examples
Shows how to calculate working hours.
var project = new Project(DataDir + "CalculateWorkHours.mpp");
// Access Task By Id
var task = project.RootTask.Children.GetById(1);
// Access Calendar and it's start and end dates
var taskCalendar = task.Get(Tsk.Calendar);
var startDate = task.Get(Tsk.Start);
var endDate = task.Get(Tsk.Finish);
// Access resource and their calendar
var resource = project.Resources.GetByUid(1);
var resourceCalendar = resource.Get(Rsc.Calendar);
TimeSpan timeSpan;
// Get Duration in Minutes
double durationInMins = 0;
var tempDate = startDate;
while (tempDate < endDate)
{
if (taskCalendar.IsDayWorking(tempDate) && resourceCalendar.IsDayWorking(tempDate))
{
timeSpan = taskCalendar.GetWorkingHours(tempDate);
durationInMins += timeSpan.TotalMinutes;
}
tempDate = tempDate.AddDays(1);
}
tempDate = startDate;
// Get Duration in Hours
double durationInHours = 0;
while (tempDate < endDate)
{
if (taskCalendar.IsDayWorking(tempDate) && resourceCalendar.IsDayWorking(tempDate))
{
timeSpan = taskCalendar.GetWorkingHours(tempDate);
durationInHours += timeSpan.TotalHours;
}
tempDate = tempDate.AddDays(1);
}
// Get Duration in Days
double durationInDays = 0;
tempDate = startDate;
while (tempDate < endDate)
{
if (taskCalendar.IsDayWorking(tempDate) && resourceCalendar.IsDayWorking(tempDate))
{
timeSpan = taskCalendar.GetWorkingHours(tempDate);
if (timeSpan.TotalHours > 0)
{
durationInDays += timeSpan.TotalDays * (24 / timeSpan.TotalHours);
}
}
tempDate = tempDate.AddDays(1);
}
Console.WriteLine("Duration in Minutes = " + durationInMins);
Console.WriteLine("Duration in Hours = " + durationInHours);
Console.WriteLine("Duration in Days = " + durationInDays);
See Also
- class Calendar
- namespace Aspose.Tasks
- assembly Aspose.Tasks