8 #include <system/string.h>
9 #include <system/nullable.h>
10 #include <system/iequatable.h>
11 #include <system/guid.h>
12 #include <system/date_time.h>
15 #include "aspose.tasks.cpp/NullableBool.h"
16 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
22 class AssignmentBaseline;
23 class AutoRecalculationState;
24 class BaselineTimephasedDataMaker;
25 namespace Calculations
27 class RescheduleIncompleteWorkCalculator;
28 class ResourceAssignmentCalculator;
29 class ResourceAssignmentPeakCalculator;
30 class ResourceAssignmentRateByDateEnumerator;
31 class ResourceAssignmentVarianceCalculator;
32 class ResourceAssignmentWorkCalculator;
33 class ResourceCalculator;
34 class ResourceOverAllocationCalculator;
35 class SummaryTaskCalculator;
36 class TaskByAssignmentCalculator;
38 class TaskProgressCalculator;
39 class TaskSlackCalculator;
40 class TaskStatusCalculator;
41 class TaskVarianceCalculator;
42 class TimephasedDataCalculator;
43 class TimephasedIterator;
44 class TimeScaledCalculator;
46 class CalendarCollection;
47 class CalendarDatesCalculator;
48 class CalendarException;
49 class CalendarExceptionCollection;
50 class CalendarExceptionCollectionWithCache;
51 namespace Connectivity
53 class MpdCalendarMapper;
54 class MspCalendarMapper;
56 class PmCalendarMapper;
57 class PrimaveraDbReader;
59 class DailyCalendarRepetition;
60 class DailyWorkRepetition;
61 class DatesCalculator;
67 class CalendarRootFilter;
69 class FixedDurationEffortDrivenTaskPlanner;
70 class FixedDurationTaskPlanner;
71 template <
typename,
typename>
class IKeyValueCache;
76 class HtmlCalendarTableReader;
84 class Mpp12CalendarReader;
85 class Mpp12CalendarWriter;
87 class Mpp14CalendarReader;
88 class Mpp14CalendarWriter;
90 class MPP14ResourceWriter;
91 class Mpp15CalendarReader;
92 class Mpp15CalendarWriter;
93 class Mpp9CalendarReader;
94 class Mpp9CalendarWriter;
96 class MppCalendarReader;
97 class MPPProjectPropsReader;
98 class MPPProjectPropsWriter;
100 class MPPResourceReader;
102 class MPPTimephasedDataReader;
103 class MppTimephasedDataWriter;
104 class MppWeekDayReader;
106 namespace PrimaveraXml
109 class PrimaveraCalendarNodeReader;
110 class PrimaveraReader;
111 class PrimaveraResourceNodeReader;
115 namespace InternalApi
117 class InternalApiProjectSerializer;
120 class CalendarToRawValuesMapper;
121 class ProjectCalendarsMapper;
122 class ProjectRootMapper;
128 class XerAssignmentReader;
129 class XerCalendarReader;
130 class XerPrimaveraReader;
131 class XerProjectNormalizer;
135 class CalendarFactory;
136 class CalendarNodeReader;
137 class CalendarNodeWriter;
138 class ResourceNodeReader;
139 class TaskNodeReader;
140 class TimephasedDataNodeReader;
141 class WeekDayNodeReader;
146 class IReadOnlyWorkingTimeCollection;
149 class LevelingAlgorithm;
152 class MonthlyRepetitionBase;
154 class PercentCompleteCalculator;
158 class ProjectIntegrityValidator;
160 class ProjectWorkUpdater;
161 namespace Recalculation
163 class TaskSplitCalculator;
167 namespace Calculators
169 class CalendarDayRecurrenceDateCalculator;
170 class DefaultRecurrenceDateCalculator;
171 class RecurrenceDateCalculatorBase;
175 class ResourceAssignment;
178 class HtmlCalendarTable;
180 class PrimaveraCalendarNodeWriter;
181 class XerCalendarTable;
185 class ConstraintSolver;
186 class FromStartScheduler;
187 class TopsortCriticalPath;
190 class SplitsCalculator;
194 class TaskPlannerAssignmentManager;
195 class TaskWarningCalculator;
198 class TimephasedDataByScaledEnumerator;
199 class TimeScaledWorkContourBuilder;
201 class TimephasedDataCalculationUtil;
202 class TimephasedDataMaker;
203 class TimephasedWorkCostSelector;
204 class TimeScaledExceptions;
205 class TimeScaledParentWorkUnit;
208 class CalendarHelper;
209 class PrimaveraSummaryTasksCalculator;
210 class PrimaveraTasksProcessor;
214 class RecurringTaskParametersValidator;
217 class WeekDayCollection;
218 class WeeklyRepetitionBase;
219 class WorkingTimeCollection;
221 class WorkWeekCollection;
222 class YearlyRepetitionBase;
297 class ASPOSE_TASKS_SHARED_CLASS
Calendar :
public System::Object
300 typedef System::Object BaseType;
302 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
303 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
307 class CalendarCacheKey;
311 friend class Aspose::Tasks::Calculations::RescheduleIncompleteWorkCalculator;
312 friend class Aspose::Tasks::Calculations::TimephasedIterator;
313 friend class Aspose::Tasks::Calculations::ResourceOverAllocationCalculator;
314 friend class Aspose::Tasks::Calculations::TimeScaledCalculator;
315 friend class Aspose::Tasks::Calculations::ResourceAssignmentRateByDateEnumerator;
316 friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
317 friend class Aspose::Tasks::Calculations::ResourceAssignmentPeakCalculator;
318 friend class Aspose::Tasks::Calculations::ResourceAssignmentWorkCalculator;
319 friend class Aspose::Tasks::Calculations::ResourceCalculator;
320 friend class Aspose::Tasks::Calculations::SummaryTaskCalculator;
321 friend class Aspose::Tasks::Calculations::TaskByAssignmentCalculator;
322 friend class Aspose::Tasks::Calculations::TaskCalculator;
323 friend class Aspose::Tasks::Calculations::TaskProgressCalculator;
324 friend class Aspose::Tasks::Calculations::ResourceAssignmentVarianceCalculator;
325 friend class Aspose::Tasks::Calculations::TaskSlackCalculator;
326 friend class Aspose::Tasks::Calculations::TaskVarianceCalculator;
327 friend class Aspose::Tasks::Calculations::TaskStatusCalculator;
328 friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
329 friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
331 friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
332 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraCalendarNodeReader;
333 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraReader;
334 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceNodeReader;
335 friend class Aspose::Tasks::Leveling::LevelingAlgorithm;
339 friend class Aspose::Tasks::BaselineTimephasedDataMaker;
340 friend class Aspose::Tasks::Timephased::TimeScaledWorkContourBuilder;
341 friend class Aspose::Tasks::Timephased::TimephasedDataByScaledEnumerator;
342 friend class Aspose::Tasks::TimephasedDataCalculationUtil;
343 friend class Aspose::Tasks::TimeScaledParentWorkUnit;
344 friend class Aspose::Tasks::Util::PrimaveraSummaryTasksCalculator;
345 friend class Aspose::Tasks::Filters::CalendarRootFilter;
346 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::CalendarToRawValuesMapper;
347 friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectSerializer;
348 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectRootMapper;
349 friend class Aspose::Tasks::IO::Xml::CalendarFactory;
350 friend class Aspose::Tasks::EVCalculator;
351 friend class Aspose::Tasks::ProjDateDiff;
352 friend class Aspose::Tasks::ProjDateSub;
353 friend class Aspose::Tasks::Connectivity::MpdCalendarMapper;
354 friend class Aspose::Tasks::Connectivity::MspCalendarMapper;
355 friend class Aspose::Tasks::Connectivity::MspDbUtils;
356 friend class Aspose::Tasks::Connectivity::PmCalendarMapper;
357 friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
358 friend class Aspose::Tasks::IO::Html::HtmlCalendarTableReader;
359 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarReader;
360 friend class Aspose::Tasks::IO::MSProject::MppCalendarReader;
361 friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
362 friend class Aspose::Tasks::IO::MSProject::MPPReader;
363 friend class Aspose::Tasks::IO::MSProject::MPPResourceReader;
364 friend class Aspose::Tasks::IO::MSProject::MppWeekDayReader;
365 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarReader;
366 friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
367 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarReader;
368 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarWriter;
369 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarWriter;
370 friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
371 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarReader;
372 friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
373 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsReader;
374 friend class Aspose::Tasks::IO::MSProject::MPPTimephasedDataReader;
375 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarWriter;
376 friend class Aspose::Tasks::IO::MSProject::MPPTaskWriter;
377 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarWriter;
378 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsWriter;
379 friend class Aspose::Tasks::IO::MSProject::MppTimephasedDataWriter;
380 friend class Aspose::Tasks::IO::Mpx::MpxReader;
381 friend class Aspose::Tasks::IO::Xer::XerPrimaveraReader;
382 friend class Aspose::Tasks::IO::Xer::XerAssignmentReader;
383 friend class Aspose::Tasks::IO::Xer::XerCalendarReader;
384 friend class Aspose::Tasks::IO::Xer::XerProjectNormalizer;
385 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCalendarsMapper;
386 friend class Aspose::Tasks::IO::Xml::CalendarNodeReader;
387 friend class Aspose::Tasks::IO::Xml::CalendarNodeWriter;
388 friend class Aspose::Tasks::IO::Xml::ResourceNodeReader;
389 friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
390 friend class Aspose::Tasks::IO::Xml::TimephasedDataNodeReader;
391 friend class Aspose::Tasks::IO::Xml::WeekDayNodeReader;
392 friend class Aspose::Tasks::IO::Xml::XmlReader;
393 friend class Aspose::Tasks::IO::Xml::XmlWriter;
394 friend class Aspose::Tasks::ProjectIntegrityValidator;
395 friend class Aspose::Tasks::AutoRecalculationState;
396 friend class Aspose::Tasks::ProjectState;
397 friend class Aspose::Tasks::CalendarDatesCalculator;
398 friend class Aspose::Tasks::DatesCalculator;
399 friend class Aspose::Tasks::TaskPlannerAssignmentManager;
400 friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlanner;
401 friend class Aspose::Tasks::TaskPlanner;
402 friend class Aspose::Tasks::FixedDurationTaskPlanner;
403 friend class Aspose::Tasks::ManualState;
404 friend class Aspose::Tasks::PercentCompleteCalculator;
405 friend class Aspose::Tasks::ProjectWorkUpdater;
406 friend class Aspose::Tasks::SplitsCalculator;
407 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
408 friend class Aspose::Tasks::TaskWarningCalculator;
409 friend class Aspose::Tasks::Recurring::Calculators::CalendarDayRecurrenceDateCalculator;
410 friend class Aspose::Tasks::Recurring::Calculators::RecurrenceDateCalculatorBase;
413 friend class Aspose::Tasks::Recurring::Calculators::DefaultRecurrenceDateCalculator;
417 friend class Aspose::Tasks::Saving::HtmlCalendarTable;
418 friend class Aspose::Tasks::Saving::MpxWriter;
419 friend class Aspose::Tasks::Saving::XerCalendarTable;
420 friend class Aspose::Tasks::Saving::PrimaveraCalendarNodeWriter;
421 friend class Aspose::Tasks::Scheduling::ConstraintSolver;
422 friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
423 friend class Aspose::Tasks::Scheduling::FromStartScheduler;
426 friend class Aspose::Tasks::TimephasedDataMaker;
427 friend class Aspose::Tasks::TimephasedWorkCostSelector;
428 friend class Aspose::Tasks::Util::CalendarHelper;
429 friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
430 friend class Aspose::Tasks::Validators::RecurringTaskParametersValidator;
431 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
432 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
436 class ASPOSE_TASKS_SHARED_CLASS CalendarCacheKey :
public System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey>,
public System::Details::BoxableObjectBase
439 typedef System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey> BaseType;
441 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
442 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
444 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
445 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
449 ASPOSE_TASKS_SHARED_API CalendarCacheKey(int32_t calUid, System::DateTime start, System::DateTime finish,
double units);
452 ASPOSE_TASKS_SHARED_API
bool Equals(Calendar::CalendarCacheKey other)
override;
454 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
456 ASPOSE_TASKS_SHARED_API int32_t GetHashCode()
const override;
458 ASPOSE_TASKS_SHARED_API CalendarCacheKey();
462 #ifdef ASPOSE_GET_SHARED_MEMBERS
463 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
471 System::DateTime start;
472 System::DateTime finish;
473 int32_t cachedHashCode;
483 ASPOSE_TASKS_SHARED_API System::String
get_Name()
const;
487 ASPOSE_TASKS_SHARED_API
void set_Name(
const System::String& value);
491 ASPOSE_TASKS_SHARED_API int32_t
get_Uid()
const;
495 ASPOSE_TASKS_SHARED_API
void set_Uid(int32_t value);
500 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WeekDayCollection>&
get_WeekDays()
const;
505 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarExceptionCollection>
get_Exceptions()
const;
510 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WorkWeekCollection>&
get_WorkWeeks()
const;
536 ASPOSE_TASKS_SHARED_API System::String
get_Guid()
const;
543 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
MakeStandardCalendar(
const System::SharedPtr<Calendar>& calendar);
550 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
Make24HourCalendar(
const System::SharedPtr<Calendar>& calendar);
556 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
MakeNightShiftCalendar(
const System::SharedPtr<Calendar>& calendar);
562 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
598 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkUnit>
GetWorkingHours(System::DateTime start, System::DateTime finish);
632 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection>
GetWorkingTimes(System::DateTime dt);
652 ASPOSE_TASKS_SHARED_API
void set_WeekDays(
const System::SharedPtr<WeekDayCollection>& value);
656 ASPOSE_TASKS_SHARED_API
void set_Guid(
const System::String& value);
657 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<Project>& get_ParentProject()
const;
658 ASPOSE_TASKS_SHARED_API
void set_ParentProject(
const System::SharedPtr<Project>& value);
659 ASPOSE_TASKS_SHARED_API
NullableBool get_NullableIsBaselineCalendar()
const;
660 ASPOSE_TASKS_SHARED_API
void set_NullableIsBaselineCalendar(
NullableBool value);
661 ASPOSE_TASKS_SHARED_API int32_t get_ResourceUid()
const;
662 ASPOSE_TASKS_SHARED_API
void set_ResourceUid(int32_t value);
663 ASPOSE_TASKS_SHARED_API
bool get_IsNull()
const;
664 ASPOSE_TASKS_SHARED_API
void set_IsNull(
bool value);
665 ASPOSE_TASKS_SHARED_API
bool get_IsZeroResourceCalendar();
666 ASPOSE_TASKS_SHARED_API System::Guid get_UnknownGuid()
const;
667 ASPOSE_TASKS_SHARED_API
void set_UnknownGuid(System::Guid value);
668 ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Resource> get_Resource()
const;
669 ASPOSE_TASKS_SHARED_API
void set_Resource(
const System::SharedPtr<Aspose::Tasks::Resource>& value);
670 ASPOSE_TASKS_SHARED_API
bool get_Is24HourCalendar();
671 ASPOSE_TASKS_SHARED_API int32_t get_NonWorkingDayCount();
672 ASPOSE_TASKS_SHARED_API int32_t get_WorkingDayCount();
673 ASPOSE_TASKS_SHARED_API
bool get_IsCacheEnabled();
674 ASPOSE_TASKS_SHARED_API
void set_IsCacheEnabled(
bool value);
681 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS());
687 ASPOSE_TASKS_SHARED_API
Calendar(int32_t uid);
689 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS(int32_t uid));
690 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHoursTimeSpan(System::DateTime start, System::DateTime finish);
691 ASPOSE_TASKS_SHARED_API
bool IsDayOff(System::DateTime date);
692 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start,
Duration duration,
bool isLast,
bool daysOff);
693 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start, System::TimeSpan duration,
bool isLast,
bool daysOff);
694 ASPOSE_TASKS_SHARED_API System::DateTime GetTaskFinishDateFromDuration(
const System::SharedPtr<Task>& task,
Duration duration);
695 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start,
Duration duration);
696 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate,
Duration duration);
704 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start, System::TimeSpan duration);
712 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate, System::TimeSpan duration);
713 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWork(System::DateTime start, System::DateTime end,
const System::SharedPtr<Calendar>& anotherCalendar);
714 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWork(System::DateTime start, System::DateTime end, System::SharedPtr<Calendar> anotherCalendar,
bool trimSeconds);
720 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date);
721 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStartOrDefault(System::DateTime date);
722 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date,
const System::SharedPtr<Calendar>& anotherCalendar);
723 ASPOSE_TASKS_SHARED_API System::DateTime GetPrevWorkingTimeEnd(System::DateTime date);
724 ASPOSE_TASKS_SHARED_API
bool IsEmpty();
725 ASPOSE_TASKS_SHARED_API
bool IsWorkDayEnd(System::DateTime date);
726 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeEnd(System::DateTime date);
727 ASPOSE_TASKS_SHARED_API
bool IsWorkDayStart(System::DateTime date);
728 ASPOSE_TASKS_SHARED_API
bool IsNonworkingTime(System::DateTime date);
729 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeStart(System::DateTime date);
730 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date);
731 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date, System::TimeSpan nonWorkingDayStart);
732 ASPOSE_TASKS_SHARED_API System::DateTime GetDayStart(System::DateTime date);
733 ASPOSE_TASKS_SHARED_API int32_t GetWorkingDaysCount(System::DateTime start, System::DateTime end);
741 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work,
const System::SharedPtr<Calendar>& anotherCalendar);
742 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish,
Duration work,
const System::SharedPtr<Calendar>& anotherCalendar);
750 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work,
const System::SharedPtr<Calendar>& anotherCalendar);
757 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work);
761 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesAtDate(System::DateTime date);
762 ASPOSE_TASKS_SHARED_API
void StartExceptionsCaching();
763 ASPOSE_TASKS_SHARED_API
void StopExceptionsCaching();
768 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarNoWeekend();
769 ASPOSE_TASKS_SHARED_API
void SetWorkingExceptions(
const System::SharedPtr<TimeScaledExceptions>& exceptionCollection);
774 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> Get24HoursCalendarInternal();
775 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> WrapCalendar(
const System::SharedPtr<Calendar>& calendar,
const System::SharedPtr<TimeScaledExceptions>& workingExceptions);
780 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarInternal();
781 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesIgnoreExceptions(DayType dayType);
782 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarException> CheckException(System::DateTime dt,
bool checkImplicit =
true);
783 ASPOSE_TASKS_SHARED_API System::SharedPtr<IReadOnlyWorkingTimeCollection> GetScheduleForImplicitException();
785 virtual ASPOSE_TASKS_SHARED_API ~
Calendar();
787 #ifdef ASPOSE_GET_SHARED_MEMBERS
788 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
794 System::SharedPtr<CalendarDatesCalculator> calculator;
795 System::SharedPtr<CalendarExceptionCollectionWithCache> exceptions;
796 System::SharedPtr<TimeScaledExceptions> workingExceptions;
798 System::WeakPtr<Aspose::Tasks::Resource> resource;
799 System::Nullable<bool> is24HourCal;
800 System::SharedPtr<Calendar> baseCalendar;
802 int32_t isCacheEnabledNesting;
803 System::SharedPtr<IKeyValueCache<System::DateTime, System::SharedPtr<WorkingTimeCollection>>> calculationsCache;
805 static System::SharedPtr<Calendar>& calendar24Hours();
807 System::String pr_Name;
809 System::SharedPtr<WeekDayCollection> pr_WeekDays;
810 System::SharedPtr<WorkWeekCollection> pr_WorkWeeks;
816 ASPOSE_TASKS_SHARED_API
void set_WorkWeeks(
const System::SharedPtr<WorkWeekCollection>& value);
818 System::WeakPtr<Project> pr_ParentProject;
819 int32_t pr_ResourceUid;
821 System::Guid pr_UnknownGuid;
823 System::String get_DebuggerDisplay();
827 bool get_IsUniform();
829 void TryToSkipByWeek(System::DateTime& enumeratorStartDate, int64_t& totalSpan, System::DateTime finish);
830 System::TimeSpan GetWorkingHoursInDay(System::DateTime start, System::DateTime finish);
831 void InitScheduleForTimescaledException(
const System::SharedPtr<CalendarException>& exception, System::DateTime dt);
832 static void Make24HourWeek(
const System::SharedPtr<Calendar>& calendar);
833 System::TimeSpan GetWeekTotalWork();
834 bool CheckWeekHasNoExceptions(System::DateTime start, System::DateTime finish);
835 static void MakeNightShiftWeek(
const System::SharedPtr<Calendar>& calendar);
836 System::SharedPtr<WorkingTimeCollection> CalculateWorkingTimes(System::DateTime dt);
837 System::SharedPtr<WorkingTimeCollection> GetWorkingTimesForCalendarException(
const System::SharedPtr<CalendarException>& calendarException, System::DateTime dt);
838 System::SharedPtr<WeekDay> GetWeekDay(System::DateTime dt);
839 System::SharedPtr<WeekDay> CheckWeekDay(DayType dayType);
840 System::SharedPtr<WeekDay> CheckDateInWorkWeeks(System::DateTime dt);
844 ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
845 ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
Represents Baseline of a resource assignment.
Definition: AssignmentBaseline.h:84
Represents a collection of Calendar objects.
Definition: CalendarCollection.h:98
Represents a calendar used in a project.
Definition: Calendar.h:298
void Delete()
Removes calendar from project.
int32_t GetHashCode() const override
Returns a hash code for the instance of the class.
void set_IsBaselineCalendar(bool value)
Sets a value indicating whether the calendar is a baseline calendar.
System::String get_Name() const
Gets the name of the calendar.
static System::SharedPtr< Calendar > MakeStandardCalendar(const System::SharedPtr< Calendar > &calendar)
Creates default standard calendar.
System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, Duration duration)
Returns StartDate based on specified FinishDate and Duration.
System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work)
Calculates the date when the specified amount of work time will pass according to the calendar.
void set_BaseCalendar(const System::SharedPtr< Calendar > &value)
Sets the base calendar on which this calendar depends. Only applicable if the calendar is not a base ...
System::SharedPtr< CalendarExceptionCollection > get_Exceptions() const
Gets CalendarExceptionCollection object. The collection of exceptions that is associated with the cal...
System::SharedPtr< WorkingTimeCollection > GetWorkingTimes(System::DateTime dt)
Returns WorkingTimeCollection of working times for the specified date.
const System::SharedPtr< WorkWeekCollection > & get_WorkWeeks() const
Gets WorkWeekCollections object. The collection of work weeks that is associated with the calendar.
const System::SharedPtr< WeekDayCollection > & get_WeekDays() const
Gets WeekDaysCollection for this calendar. The collection of weekdays that defines the calendar.
System::DateTime GetTaskFinishDateFromDuration(const System::SharedPtr< Task > &task, System::TimeSpan duration)
Calculates the task finish date and time from its start date, split parts and the duration.
static System::SharedPtr< Calendar > MakeNightShiftCalendar(const System::SharedPtr< Calendar > &calendar)
Makes a given Calendar as Night Shift Calendar.
bool IsDayWorking(System::DateTime dt)
Determines whether the day is working day.
System::String get_Guid() const
Gets calendar's Guid.
bool get_IsBaselineCalendar()
Gets a value indicating whether the calendar is a baseline calendar.
static System::SharedPtr< Calendar > Make24HourCalendar(const System::SharedPtr< Calendar > &calendar)
Makes a given Calendar to be a 24Hour Calendar. 24Hours Calendar is a Calendar in which every day of ...
void set_Name(const System::String &value)
Sets the name of the calendar.
int32_t get_Uid() const
Gets the unique identifier of the calendar.
System::SharedPtr< WorkUnit > GetWorkingHours(System::DateTime start, System::DateTime finish)
Return working hours for the specified dates.
System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, System::TimeSpan duration)
Returns StartDate based on specified FinishDate and Duration.
System::DateTime GetPreviousWorkingDayEnd(System::DateTime date)
Calculates previous working date end from the specified date.
bool get_IsBaseCalendar()
Gets a value indicating whether the calendar is a base calendar.
System::DateTime GetFinishDateByStartAndWork(System::DateTime start, Duration work)
Calculates the date when the specified amount of work time will pass according to the calendar.
void set_Uid(int32_t value)
Sets the unique identifier of the calendar.
System::TimeSpan GetWorkingHours(System::DateTime dt)
Returns amount of working hours at the date.
System::DateTime GetNextWorkingDayStart(System::DateTime date)
Calculates next working day start from the date.
bool Equals(System::SharedPtr< System::Object > obj) override
Returns a value indicating whether this instance is equal to a specified object.
System::SharedPtr< Calendar > get_BaseCalendar() const
Gets the base calendar on which this calendar depends. Only applicable if the calendar is not a base ...
Represents a class for repetitions in daily recurrence pattern based on calendar days.
Definition: DailyCalendarRepetition.h:36
Represents a class for repetitions in daily recurrence pattern based on work days.
Definition: DailyWorkRepetition.h:36
Represents duration in a project.
Definition: Duration.h:163
Represents a base pattern for monthly day position.
Definition: MonthlyRepetitionBase.h:40
A class for boolean values with possibility to check whether the value was defined or not.
Definition: NullableBool.h:22
Represents a project.
Definition: Project.h:552
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:222
Represents a task portion. The SplitPart is a member of the task's SplitParts collection.
Definition: SplitPart.h:45
Represents Baseline of a Task.
Definition: TaskBaseline.h:53
Represents a task in a project.
Definition: Task.h:384
Represents a base class for repetitions in weekly recurrence pattern.
Definition: WeeklyRepetitionBase.h:40
Represents a base pattern for yearly day position.
Definition: YearlyRepetitionBase.h:38