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 namespace Calculations
26 class ResourceAssignmentCalculator;
27 class ResourceAssignmentPeakCalculator;
28 class ResourceAssignmentRateByDateEnumerator;
29 class ResourceAssignmentVarianceCalculator;
30 class ResourceAssignmentWorkCalculator;
31 class ResourceCalculator;
32 class SummaryTaskCalculator;
33 class TaskByAssignmentCalculator;
34 class TaskProgressCalculator;
35 class TaskSlackCalculator;
36 class TaskStatusCalculator;
37 class TaskVarianceCalculator;
38 class TimephasedDataCalculator;
39 class TimeScaledCalculator;
41 class CalendarCollection;
42 class CalendarDatesCalculator;
43 class CalendarException;
44 class CalendarExceptionCollection;
45 class CalendarExceptionCollectionWithCache;
46 class CalendarTDMaker;
47 namespace Connectivity
49 class MpdCalendarMapper;
50 class MspCalendarMapper;
52 class PmCalendarMapper;
53 class PrimaveraDbReader;
55 class DailyCalendarRepetition;
56 class DailyWorkRepetition;
57 class DatesCalculator;
63 class CalendarRootFilter;
65 class FixedDurationEffortDrivenTaskPlanner;
66 template <
typename,
typename>
class IKeyValueCache;
71 class HtmlCalendarTableReader;
79 class Mpp12CalendarReader;
80 class Mpp12CalendarWriter;
82 class Mpp14CalendarReader;
83 class Mpp14CalendarWriter;
85 class MPP14ResourceWriter;
86 class Mpp15CalendarReader;
87 class Mpp15CalendarWriter;
88 class Mpp9CalendarReader;
89 class Mpp9CalendarWriter;
91 class MppCalendarReader;
92 class MPPProjectPropsReader;
93 class MPPProjectPropsWriter;
95 class MPPResourceReader;
97 class MPPTimephasedDataReader;
98 class MppTimephasedDataWriter;
99 class MppWeekDayReader;
101 namespace PrimaveraXml
104 class PrimaveraCalendarNodeReader;
105 class PrimaveraReader;
106 class PrimaveraResourceNodeReader;
110 namespace InternalApi
112 class InternalApiProjectSerializer;
115 class CalendarToRawValuesMapper;
116 class ProjectCalendarsMapper;
117 class ProjectRootMapper;
123 class XerAssignmentReader;
124 class XerCalendarReader;
125 class XerPrimaveraReader;
126 class XerProjectNormalizer;
130 class CalendarFactory;
131 class CalendarNodeReader;
132 class CalendarNodeWriter;
133 class ResourceNodeReader;
134 class TaskNodeReader;
135 class TimephasedDataNodeReader;
136 class WeekDayNodeReader;
141 class IReadOnlyWorkingTimeCollection;
143 class MonthlyRepetitionBase;
145 class PercentCompleteCalculator;
149 class ProjectIntegrityValidator;
151 class ProjectWorkUpdater;
152 namespace Recalculation
154 class TaskSplitCalculator;
155 class TimephasedDataCalculationUtil;
159 namespace Calculators
161 class CalendarDayRecurrenceDateCalculator;
162 class DefaultRecurrenceDateCalculator;
163 class RecurrenceDateCalculatorBase;
167 class ResourceAssignment;
170 class HtmlCalendarTable;
172 class PrimaveraCalendarNodeWriter;
173 class XerCalendarTable;
177 class ConstraintSolver;
178 class FromStartScheduler;
179 class TopsortCriticalPath;
182 class SplitsCalculator;
186 class TaskPlannerAssignmentManager;
187 class TaskWarningCalculator;
190 class TimephasedDataByScaledEnumerator;
191 class TimeScaledWorkContourBuilder;
193 class TimephasedDataMaker;
194 class TimephasedWorkCostSelector;
195 class TimeScaledExceptions;
198 class CalendarHelper;
199 class PrimaveraSummaryTasksCalculator;
200 class PrimaveraTasksProcessor;
204 class RecurringTaskParametersValidator;
207 class WeekDayCollection;
208 class WeeklyRepetitionBase;
209 class WorkingTimeCollection;
211 class WorkWeekCollection;
212 class YearlyRepetitionBase;
287 class ASPOSE_TASKS_SHARED_CLASS
Calendar :
public System::Object
290 typedef System::Object BaseType;
292 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
293 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
297 class CalendarCacheKey;
301 friend class Aspose::Tasks::Calculations::TimeScaledCalculator;
302 friend class Aspose::Tasks::Calculations::ResourceAssignmentRateByDateEnumerator;
303 friend class Aspose::Tasks::Calculations::ResourceAssignmentCalculator;
304 friend class Aspose::Tasks::Calculations::ResourceAssignmentPeakCalculator;
305 friend class Aspose::Tasks::Calculations::ResourceAssignmentWorkCalculator;
306 friend class Aspose::Tasks::Calculations::ResourceCalculator;
307 friend class Aspose::Tasks::Calculations::SummaryTaskCalculator;
308 friend class Aspose::Tasks::Calculations::TaskByAssignmentCalculator;
309 friend class Aspose::Tasks::Calculations::TaskProgressCalculator;
310 friend class Aspose::Tasks::Calculations::ResourceAssignmentVarianceCalculator;
311 friend class Aspose::Tasks::Calculations::TaskSlackCalculator;
312 friend class Aspose::Tasks::Calculations::TaskVarianceCalculator;
313 friend class Aspose::Tasks::Calculations::TaskStatusCalculator;
314 friend class Aspose::Tasks::Calculations::TimephasedDataCalculator;
316 friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
317 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraCalendarNodeReader;
318 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraReader;
319 friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraResourceNodeReader;
323 friend class Aspose::Tasks::Timephased::TimeScaledWorkContourBuilder;
324 friend class Aspose::Tasks::Timephased::TimephasedDataByScaledEnumerator;
325 friend class Aspose::Tasks::Recalculation::TimephasedDataCalculationUtil;
326 friend class Aspose::Tasks::Util::PrimaveraSummaryTasksCalculator;
327 friend class Aspose::Tasks::Filters::CalendarRootFilter;
328 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::CalendarToRawValuesMapper;
329 friend class Aspose::Tasks::IO::Pwa::InternalApi::InternalApiProjectSerializer;
330 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectRootMapper;
331 friend class Aspose::Tasks::IO::Xml::CalendarFactory;
332 friend class Aspose::Tasks::EVCalculator;
333 friend class Aspose::Tasks::ProjDateDiff;
334 friend class Aspose::Tasks::ProjDateSub;
335 friend class Aspose::Tasks::Connectivity::MpdCalendarMapper;
336 friend class Aspose::Tasks::Connectivity::MspCalendarMapper;
337 friend class Aspose::Tasks::Connectivity::MspDbUtils;
338 friend class Aspose::Tasks::Connectivity::PmCalendarMapper;
339 friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
340 friend class Aspose::Tasks::IO::Html::HtmlCalendarTableReader;
341 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarReader;
342 friend class Aspose::Tasks::IO::MSProject::MppCalendarReader;
343 friend class Aspose::Tasks::IO::MSProject::MPP12Reader;
344 friend class Aspose::Tasks::IO::MSProject::MPPReader;
345 friend class Aspose::Tasks::IO::MSProject::MPPResourceReader;
346 friend class Aspose::Tasks::IO::MSProject::MppWeekDayReader;
347 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarReader;
348 friend class Aspose::Tasks::IO::MSProject::MPP14Reader;
349 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarReader;
350 friend class Aspose::Tasks::IO::MSProject::Mpp15CalendarWriter;
351 friend class Aspose::Tasks::IO::MSProject::Mpp14CalendarWriter;
352 friend class Aspose::Tasks::IO::MSProject::MPP14ResourceWriter;
353 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarReader;
354 friend class Aspose::Tasks::IO::MSProject::MPP9Reader;
355 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsReader;
356 friend class Aspose::Tasks::IO::MSProject::MPPTimephasedDataReader;
357 friend class Aspose::Tasks::IO::MSProject::Mpp12CalendarWriter;
358 friend class Aspose::Tasks::IO::MSProject::MPPTaskWriter;
359 friend class Aspose::Tasks::IO::MSProject::Mpp9CalendarWriter;
360 friend class Aspose::Tasks::IO::MSProject::MPPProjectPropsWriter;
361 friend class Aspose::Tasks::IO::MSProject::MppTimephasedDataWriter;
362 friend class Aspose::Tasks::IO::Mpx::MpxReader;
363 friend class Aspose::Tasks::IO::Xer::XerPrimaveraReader;
364 friend class Aspose::Tasks::IO::Xer::XerAssignmentReader;
365 friend class Aspose::Tasks::IO::Xer::XerCalendarReader;
366 friend class Aspose::Tasks::IO::Xer::XerProjectNormalizer;
367 friend class Aspose::Tasks::IO::Pwa::InternalApi::Mapping::ProjectCalendarsMapper;
368 friend class Aspose::Tasks::IO::Xml::CalendarNodeReader;
369 friend class Aspose::Tasks::IO::Xml::CalendarNodeWriter;
370 friend class Aspose::Tasks::IO::Xml::ResourceNodeReader;
371 friend class Aspose::Tasks::IO::Xml::TaskNodeReader;
372 friend class Aspose::Tasks::IO::Xml::TimephasedDataNodeReader;
373 friend class Aspose::Tasks::IO::Xml::WeekDayNodeReader;
374 friend class Aspose::Tasks::IO::Xml::XmlReader;
375 friend class Aspose::Tasks::IO::Xml::XmlWriter;
376 friend class Aspose::Tasks::ProjectIntegrityValidator;
377 friend class Aspose::Tasks::AutoRecalculationState;
378 friend class Aspose::Tasks::ProjectState;
379 friend class Aspose::Tasks::CalendarDatesCalculator;
380 friend class Aspose::Tasks::DatesCalculator;
381 friend class Aspose::Tasks::TaskPlannerAssignmentManager;
382 friend class Aspose::Tasks::FixedDurationEffortDrivenTaskPlanner;
383 friend class Aspose::Tasks::TaskPlanner;
384 friend class Aspose::Tasks::ManualState;
385 friend class Aspose::Tasks::PercentCompleteCalculator;
386 friend class Aspose::Tasks::ProjectWorkUpdater;
387 friend class Aspose::Tasks::SplitsCalculator;
388 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
389 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
390 friend class Aspose::Tasks::Recalculation::TaskSplitCalculator;
391 friend class Aspose::Tasks::TaskWarningCalculator;
392 friend class Aspose::Tasks::Recurring::Calculators::CalendarDayRecurrenceDateCalculator;
393 friend class Aspose::Tasks::Recurring::Calculators::RecurrenceDateCalculatorBase;
396 friend class Aspose::Tasks::Recurring::Calculators::DefaultRecurrenceDateCalculator;
400 friend class Aspose::Tasks::Saving::HtmlCalendarTable;
401 friend class Aspose::Tasks::Saving::MpxWriter;
402 friend class Aspose::Tasks::Saving::XerCalendarTable;
403 friend class Aspose::Tasks::Saving::PrimaveraCalendarNodeWriter;
404 friend class Aspose::Tasks::Scheduling::ConstraintSolver;
405 friend class Aspose::Tasks::Scheduling::TopsortCriticalPath;
406 friend class Aspose::Tasks::Scheduling::FromStartScheduler;
409 friend class Aspose::Tasks::CalendarTDMaker;
410 friend class Aspose::Tasks::TimephasedDataMaker;
411 friend class Aspose::Tasks::TimephasedWorkCostSelector;
412 friend class Aspose::Tasks::Util::CalendarHelper;
413 friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
414 friend class Aspose::Tasks::Validators::RecurringTaskParametersValidator;
415 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
416 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
420 class ASPOSE_TASKS_SHARED_CLASS CalendarCacheKey :
public System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey>,
public System::Details::BoxableObjectBase
423 typedef System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey> BaseType;
425 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
426 ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
428 friend ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
429 friend ASPOSE_TASKS_SHARED_API
bool operator !=(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
433 ASPOSE_TASKS_SHARED_API CalendarCacheKey(int32_t calUid, System::DateTime start, System::DateTime finish,
double units);
436 ASPOSE_TASKS_SHARED_API
bool Equals(Calendar::CalendarCacheKey other)
override;
438 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
440 ASPOSE_TASKS_SHARED_API int32_t GetHashCode()
const override;
442 ASPOSE_TASKS_SHARED_API CalendarCacheKey();
446 #ifdef ASPOSE_GET_SHARED_MEMBERS
447 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
455 System::DateTime start;
456 System::DateTime finish;
457 int32_t cachedHashCode;
467 ASPOSE_TASKS_SHARED_API System::String
get_Name()
const;
471 ASPOSE_TASKS_SHARED_API
void set_Name(
const System::String& value);
475 ASPOSE_TASKS_SHARED_API int32_t
get_Uid()
const;
479 ASPOSE_TASKS_SHARED_API
void set_Uid(int32_t value);
484 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WeekDayCollection>&
get_WeekDays()
const;
489 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarExceptionCollection>
get_Exceptions()
const;
494 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<WorkWeekCollection>&
get_WorkWeeks()
const;
520 ASPOSE_TASKS_SHARED_API System::String
get_Guid()
const;
527 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
MakeStandardCalendar(
const System::SharedPtr<Calendar>& calendar);
534 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
Make24HourCalendar(
const System::SharedPtr<Calendar>& calendar);
540 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar>
MakeNightShiftCalendar(
const System::SharedPtr<Calendar>& calendar);
546 ASPOSE_TASKS_SHARED_API
bool Equals(System::SharedPtr<System::Object> obj)
override;
582 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkUnit>
GetWorkingHours(System::DateTime start, System::DateTime finish);
616 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection>
GetWorkingTimes(System::DateTime dt);
636 ASPOSE_TASKS_SHARED_API
void set_WeekDays(
const System::SharedPtr<WeekDayCollection>& value);
640 ASPOSE_TASKS_SHARED_API
void set_Guid(
const System::String& value);
641 ASPOSE_TASKS_SHARED_API
const System::SharedPtr<Project>& get_ParentProject()
const;
642 ASPOSE_TASKS_SHARED_API
void set_ParentProject(
const System::SharedPtr<Project>& value);
643 ASPOSE_TASKS_SHARED_API
NullableBool get_NullableIsBaselineCalendar()
const;
644 ASPOSE_TASKS_SHARED_API
void set_NullableIsBaselineCalendar(
NullableBool value);
645 ASPOSE_TASKS_SHARED_API int32_t get_ResourceUid()
const;
646 ASPOSE_TASKS_SHARED_API
void set_ResourceUid(int32_t value);
647 ASPOSE_TASKS_SHARED_API
bool get_IsNull()
const;
648 ASPOSE_TASKS_SHARED_API
void set_IsNull(
bool value);
649 ASPOSE_TASKS_SHARED_API
bool get_IsZeroResourceCalendar();
650 ASPOSE_TASKS_SHARED_API System::Guid get_UnknownGuid()
const;
651 ASPOSE_TASKS_SHARED_API
void set_UnknownGuid(System::Guid value);
652 ASPOSE_TASKS_SHARED_API System::SharedPtr<Aspose::Tasks::Resource> get_Resource()
const;
653 ASPOSE_TASKS_SHARED_API
void set_Resource(
const System::SharedPtr<Aspose::Tasks::Resource>& value);
654 ASPOSE_TASKS_SHARED_API
bool get_Is24HourCalendar();
655 ASPOSE_TASKS_SHARED_API int32_t get_NonWorkingDayCount();
656 ASPOSE_TASKS_SHARED_API int32_t get_WorkingDayCount();
657 ASPOSE_TASKS_SHARED_API
bool get_IsCacheEnabled();
658 ASPOSE_TASKS_SHARED_API
void set_IsCacheEnabled(
bool value);
665 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS());
671 ASPOSE_TASKS_SHARED_API
Calendar(int32_t uid);
673 ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(
Calendar, CODEPORTING_ARGS(int32_t uid));
674 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHoursTimeSpan(System::DateTime start, System::DateTime finish);
675 ASPOSE_TASKS_SHARED_API
bool IsDayOff(System::DateTime date);
676 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start,
Duration duration,
bool isLast,
bool daysOff);
677 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndDuration(System::DateTime start, System::TimeSpan duration,
bool isLast,
bool daysOff);
678 ASPOSE_TASKS_SHARED_API System::DateTime GetTaskFinishDateFromDuration(
const System::SharedPtr<Task>& task,
Duration duration);
679 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start,
Duration duration);
680 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate,
Duration duration);
688 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(
const System::SharedPtr<Task>& task, System::DateTime start, System::TimeSpan duration);
696 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(
const System::SharedPtr<Task>& task, System::DateTime finishDate, System::TimeSpan duration);
697 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWork(System::DateTime start, System::DateTime end,
const System::SharedPtr<Calendar>& anotherCalendar);
698 ASPOSE_TASKS_SHARED_API System::TimeSpan GetWork(System::DateTime start, System::DateTime end, System::SharedPtr<Calendar> anotherCalendar,
bool trimSeconds);
704 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date);
705 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStartOrDefault(System::DateTime date);
706 ASPOSE_TASKS_SHARED_API System::DateTime GetWorkStart(System::DateTime date,
const System::SharedPtr<Calendar>& anotherCalendar);
707 ASPOSE_TASKS_SHARED_API System::DateTime GetPrevWorkingTimeEnd(System::DateTime date);
708 ASPOSE_TASKS_SHARED_API
bool IsEmpty();
709 ASPOSE_TASKS_SHARED_API
bool IsWorkDayEnd(System::DateTime date);
710 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeEnd(System::DateTime date);
711 ASPOSE_TASKS_SHARED_API
bool IsWorkDayStart(System::DateTime date);
712 ASPOSE_TASKS_SHARED_API
bool IsNonworkingTime(System::DateTime date);
713 ASPOSE_TASKS_SHARED_API
bool IsWorkingTimeStart(System::DateTime date);
714 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date);
715 ASPOSE_TASKS_SHARED_API System::DateTime GetNextDayStart(System::DateTime date, System::TimeSpan nonWorkingDayStart);
716 ASPOSE_TASKS_SHARED_API System::DateTime GetDayStart(System::DateTime date);
717 ASPOSE_TASKS_SHARED_API int32_t GetWorkingDaysCount(System::DateTime start, System::DateTime end);
725 ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work,
const System::SharedPtr<Calendar>& anotherCalendar);
726 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish,
Duration work,
const System::SharedPtr<Calendar>& anotherCalendar);
734 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work,
const System::SharedPtr<Calendar>& anotherCalendar);
741 ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work);
745 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesAtDate(System::DateTime date);
746 ASPOSE_TASKS_SHARED_API
void StartExceptionsCaching();
747 ASPOSE_TASKS_SHARED_API
void StopExceptionsCaching();
752 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarNoWeekend();
753 ASPOSE_TASKS_SHARED_API
void SetWorkingExceptions(
const System::SharedPtr<TimeScaledExceptions>& exceptionCollection);
758 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> Get24HoursCalendarInternal();
759 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> WrapCalendar(
const System::SharedPtr<Calendar>& calendar,
const System::SharedPtr<TimeScaledExceptions>& workingExceptions);
764 static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarInternal();
765 ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimesIgnoreExceptions(DayType dayType);
766 ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarException> CheckException(System::DateTime dt);
767 ASPOSE_TASKS_SHARED_API System::SharedPtr<IReadOnlyWorkingTimeCollection> GetScheduleForImplicitException();
769 virtual ASPOSE_TASKS_SHARED_API ~
Calendar();
771 #ifdef ASPOSE_GET_SHARED_MEMBERS
772 ASPOSE_TASKS_SHARED_API
void GetSharedMembers(System::Object::shared_members_type& result)
const override;
778 System::SharedPtr<CalendarDatesCalculator> calculator;
779 System::SharedPtr<CalendarExceptionCollectionWithCache> exceptions;
780 System::SharedPtr<TimeScaledExceptions> workingExceptions;
782 System::WeakPtr<Aspose::Tasks::Resource> resource;
783 System::Nullable<bool> is24HourCal;
784 System::SharedPtr<Calendar> baseCalendar;
786 int32_t isCacheEnabledNesting;
787 System::SharedPtr<IKeyValueCache<System::DateTime, System::SharedPtr<WorkingTimeCollection>>> calculationsCache;
789 static System::SharedPtr<Calendar>& calendar24Hours();
791 System::String pr_Name;
793 System::SharedPtr<WeekDayCollection> pr_WeekDays;
794 System::SharedPtr<WorkWeekCollection> pr_WorkWeeks;
800 ASPOSE_TASKS_SHARED_API
void set_WorkWeeks(
const System::SharedPtr<WorkWeekCollection>& value);
802 System::WeakPtr<Project> pr_ParentProject;
803 int32_t pr_ResourceUid;
805 System::Guid pr_UnknownGuid;
807 System::String get_DebuggerDisplay();
811 bool get_IsUniform();
813 void TryToSkipByWeek(System::DateTime& enumeratorStartDate, int64_t& totalSpan, System::DateTime finish);
814 System::TimeSpan GetWorkingHoursInDay(System::DateTime start, System::DateTime finish);
815 static void Make24HourWeek(
const System::SharedPtr<Calendar>& calendar);
816 System::TimeSpan GetWeekTotalWork();
817 bool CheckWeekHasNoExceptions(System::DateTime start, System::DateTime finish);
818 static void MakeNightShiftWeek(
const System::SharedPtr<Calendar>& calendar);
819 System::SharedPtr<WorkingTimeCollection> CalculateWorkingTimes(System::DateTime dt);
820 System::SharedPtr<WorkingTimeCollection> GetWorkingTimesForCalendarException(
const System::SharedPtr<CalendarException>& calendarException);
821 System::SharedPtr<WeekDay> GetWeekDay(System::DateTime dt);
822 System::SharedPtr<WeekDay> CheckWeekDay(DayType dayType);
823 System::SharedPtr<WeekDay> CheckDateInWorkWeeks(System::DateTime dt);
827 ASPOSE_TASKS_SHARED_API
bool operator ==(Calendar::CalendarCacheKey left, Calendar::CalendarCacheKey right);
828 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:288
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:161
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:545
Represents a resource assignment in a project.
Definition: ResourceAssignment.h:215
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:378
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