ICalendar.GetWorkingHours

GetWorkingHours(DateTime, DateTime)

Returns WorkUnit - Start, Finish and Duration of working hours for the specified date time interval.

public WorkUnit GetWorkingHours(DateTime start, DateTime finish)
ParameterTypeDescription
startDateTimeStart date of the interval.
finishDateTimeFinish date of the interval.

Return Value

Instance of WorkUnit class containing Start, Finish and Duration of working hours.

Examples

Shows how to use Calendar.GetIntersectionCalendar() method to perform calculation on assignment’s calendar.

var project = new Project(DataDir + "CalculateWorkHours.mpp");

foreach (var ra in project.ResourceAssignments)
{
    if (ra.Resource == null)
    {
        continue;
    }

    ICalendar assignmentCalendar;

    Calendar taskCalendar = ra.Task.Calendar != null && !ra.Task.Duration.IsEstimated ? ra.Task.Calendar : null;
    Calendar resourceCalendar = ra.Resource.Calendar != null && !ra.Task.IgnoreResourceCalendar
        ? ra.Resource.Calendar
        : null;

    if (taskCalendar != null && resourceCalendar != null && !ReferenceEquals(taskCalendar, resourceCalendar))
    {
        assignmentCalendar = Calendar.GetIntersectionCalendar(taskCalendar, resourceCalendar);
    }
    else
    {
        assignmentCalendar = taskCalendar ?? resourceCalendar;
    }

    if (assignmentCalendar == null)
    {
        assignmentCalendar = project.Calendar;
    }

    var workingHours = assignmentCalendar.GetWorkingHours(ra.Start, ra.Finish);

    Console.WriteLine("Working hours for assignment '{0}' : {1}", ra, workingHours);

    var date = new DateTime(2025, 4, 7);
    Console.WriteLine("Working times for date '{0}':", date);

    foreach (var wt in assignmentCalendar.GetWorkingTimes(date))
    {
        Console.WriteLine("{0} - {1}", wt.From.TimeOfDay, wt.To.TimeOfDay);
    }
}

See Also


GetWorkingHours(DateTime)

Returns the amount of working hours at the specified date.

public TimeSpan GetWorkingHours(DateTime dt)
ParameterTypeDescription
dtDateTimeThe date to get working hours for.

Return Value

Working hours at the specified date.

See Also