Aspose.Tasks for C++
Calendar.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="Calendar.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2024 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
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>
13 #include <cstdint>
14 
15 #include "aspose.tasks.cpp/NullableBool.h"
16 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
17 
18 namespace Aspose
19 {
20 namespace Tasks
21 {
22 class AssignmentBaseline;
23 class AutoRecalculationState;
24 namespace Calculations
25 {
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;
40 } // namespace Calculations
41 class CalendarCollection;
42 class CalendarDatesCalculator;
43 class CalendarException;
44 class CalendarExceptionCollection;
45 class CalendarExceptionCollectionWithCache;
46 class CalendarTDMaker;
47 namespace Connectivity
48 {
49 class MpdCalendarMapper;
50 class MspCalendarMapper;
51 class MspDbUtils;
52 class PmCalendarMapper;
53 class PrimaveraDbReader;
54 } // namespace Connectivity
55 class DailyCalendarRepetition;
56 class DailyWorkRepetition;
57 class DatesCalculator;
58 enum class DayType;
59 class Duration;
60 class EVCalculator;
61 namespace Filters
62 {
63 class CalendarRootFilter;
64 } // namespace Filters
65 class FixedDurationEffortDrivenTaskPlanner;
66 template <typename, typename> class IKeyValueCache;
67 namespace IO
68 {
69 namespace Html
70 {
71 class HtmlCalendarTableReader;
72 } // namespace Html
73 namespace Mpx
74 {
75 class MpxReader;
76 } // namespace Mpx
77 namespace MSProject
78 {
79 class Mpp12CalendarReader;
80 class Mpp12CalendarWriter;
81 class MPP12Reader;
82 class Mpp14CalendarReader;
83 class Mpp14CalendarWriter;
84 class MPP14Reader;
85 class MPP14ResourceWriter;
86 class Mpp15CalendarReader;
87 class Mpp15CalendarWriter;
88 class Mpp9CalendarReader;
89 class Mpp9CalendarWriter;
90 class MPP9Reader;
91 class MppCalendarReader;
92 class MPPProjectPropsReader;
93 class MPPProjectPropsWriter;
94 class MPPReader;
95 class MPPResourceReader;
96 class MPPTaskWriter;
97 class MPPTimephasedDataReader;
98 class MppTimephasedDataWriter;
99 class MppWeekDayReader;
100 } // namespace MSProject
101 namespace PrimaveraXml
102 {
103 class P6XmlUtils;
104 class PrimaveraCalendarNodeReader;
105 class PrimaveraReader;
106 class PrimaveraResourceNodeReader;
107 } // namespace PrimaveraXml
108 namespace Pwa
109 {
110 namespace InternalApi
111 {
112 class InternalApiProjectSerializer;
113 namespace Mapping
114 {
115 class CalendarToRawValuesMapper;
116 class ProjectCalendarsMapper;
117 class ProjectRootMapper;
118 } // namespace Mapping
119 } // namespace InternalApi
120 } // namespace Pwa
121 namespace Xer
122 {
123 class XerAssignmentReader;
124 class XerCalendarReader;
125 class XerPrimaveraReader;
126 class XerProjectNormalizer;
127 } // namespace Xer
128 namespace Xml
129 {
130 class CalendarFactory;
131 class CalendarNodeReader;
132 class CalendarNodeWriter;
133 class ResourceNodeReader;
134 class TaskNodeReader;
135 class TimephasedDataNodeReader;
136 class WeekDayNodeReader;
137 class XmlReader;
138 class XmlWriter;
139 } // namespace Xml
140 } // namespace IO
141 class IReadOnlyWorkingTimeCollection;
142 class ManualState;
143 class MonthlyRepetitionBase;
144 class NullableBool;
145 class PercentCompleteCalculator;
146 class ProjDateDiff;
147 class ProjDateSub;
148 class Project;
149 class ProjectIntegrityValidator;
150 class ProjectState;
151 class ProjectWorkUpdater;
152 namespace Recalculation
153 {
154 class TaskSplitCalculator;
155 class TimephasedDataCalculationUtil;
156 } // namespace Recalculation
157 namespace Recurring
158 {
159 namespace Calculators
160 {
161 class CalendarDayRecurrenceDateCalculator;
162 class DefaultRecurrenceDateCalculator;
163 class RecurrenceDateCalculatorBase;
164 } // namespace Calculators
165 } // namespace Recurring
166 class Resource;
167 class ResourceAssignment;
168 namespace Saving
169 {
170 class HtmlCalendarTable;
171 class MpxWriter;
172 class PrimaveraCalendarNodeWriter;
173 class XerCalendarTable;
174 } // namespace Saving
175 namespace Scheduling
176 {
177 class ConstraintSolver;
178 class FromStartScheduler;
179 class TopsortCriticalPath;
180 } // namespace Scheduling
181 class SplitPart;
182 class SplitsCalculator;
183 class Task;
184 class TaskBaseline;
185 class TaskPlanner;
186 class TaskPlannerAssignmentManager;
187 class TaskWarningCalculator;
188 namespace Timephased
189 {
190 class TimephasedDataByScaledEnumerator;
191 class TimeScaledWorkContourBuilder;
192 } // namespace Timephased
193 class TimephasedDataMaker;
194 class TimephasedWorkCostSelector;
195 class TimeScaledExceptions;
196 namespace Util
197 {
198 class CalendarHelper;
199 class PrimaveraSummaryTasksCalculator;
200 class PrimaveraTasksProcessor;
201 } // namespace Util
202 namespace Validators
203 {
204 class RecurringTaskParametersValidator;
205 } // namespace Validators
206 class WeekDay;
207 class WeekDayCollection;
208 class WeeklyRepetitionBase;
209 class WorkingTimeCollection;
210 class WorkUnit;
211 class WorkWeekCollection;
212 class YearlyRepetitionBase;
213 } // namespace Tasks
214 } // namespace Aspose
215 namespace System
216 {
217 class TimeSpan;
218 } // namespace System
219 
220 namespace Aspose {
221 
222 namespace Tasks {
223 
224 /// <summary>
225 /// Represents a calendar used in a project.
226 /// </summary>
227 /// <example>
228 /// How to create simple calendar from scratch.
229 /// <code>
230 /// [C#]
231 /// // create empty calendar
232 /// Calendar calendar = new Calendar("New calendar");
233 /// // adds default working days (8 working hours from 9:00 to 17:00)
234 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
235 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
236 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
237 /// // create new new working day
238 /// WeekDay myWeekDay = new WeekDay(DayType.Thursday);
239 /// // Sets working time. Only time part of DateTime is important
240 /// WorkingTime wt1 = new WorkingTime();
241 /// wt1.FromTime = new DateTime(1, 1, 1, 6, 0, 0, 0);
242 /// wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
243 /// WorkingTime wt2 = new WorkingTime();
244 /// wt2.FromTime = new DateTime(1, 1, 1, 14, 0, 0, 0);
245 /// wt2.ToTime = new DateTime(1, 1, 1, 18, 0, 0, 0);
246 /// myWeekDay.WorkingTimes.Add(wt1);
247 /// myWeekDay.WorkingTimes.Add(wt2);
248 /// myWeekDay.DayWorking = true;
249 /// calendar.Days.Add(myWeekDay);
250 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday));
251 /// // adds weekend
252 /// calendar.Days.Add(new WeekDay(DayType.Saturday));
253 /// calendar.Days.Add(new WeekDay(DayType.Sunday));
254 /// </code>
255 /// <code>
256 /// [VB]
257 /// ' create empty calendar
258 /// Dim calendar As Calendar = New Calendar("New calendar")
259 /// ' adds default working days (8 working hours from 9:00 to 17:00)
260 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday))
261 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday))
262 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday))
263 /// ' create new new working day
264 /// Dim myWeekDay As WeekDay = New WeekDay(DayType.Thursday)
265 /// ' Sets working time. Only time part of DateTime is important
266 /// Dim wt1 As WorkingTime = New WorkingTime()
267 /// wt1.FromTime = New DateTime(1, 1, 1, 6, 0, 0, 0)
268 /// wt1.ToTime = New DateTime(1, 1, 1, 12, 0, 0, 0)
269 /// Dim wt2 As WorkingTime = New WorkingTime()
270 /// wt2.FromTime = New DateTime(1, 1, 1, 14, 0, 0, 0)
271 /// wt2.ToTime = New DateTime(1, 1, 1, 18, 0, 0, 0)
272 /// myWeekDay.WorkingTimes.Add(wt1)
273 /// myWeekDay.WorkingTimes.Add(wt2)
274 /// myWeekDay.DayWorking = True
275 /// calendar.Days.Add(myWeekDay)
276 /// calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday))
277 /// ' adds weekend
278 /// calendar.Days.Add(New WeekDay(DayType.Saturday))
279 /// calendar.Days.Add(New WeekDay(DayType.Sunday))
280 /// </code>
281 /// </example>
282 /// <remarks>
283 /// Calendars are used to define standard working and non-working times.
284 /// Projects must have one base calendar. Tasks and resources can have
285 /// their own non-base calendars that are based on a base calendar.
286 /// </remarks>
287 class ASPOSE_TASKS_SHARED_CLASS Calendar : public System::Object
288 {
289  typedef Calendar ThisType;
290  typedef System::Object BaseType;
291 
292  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
293  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
294 
295 protected:
296 
297  class CalendarCacheKey;
298 
299 private:
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;
320  friend class Aspose::Tasks::Project;
322  friend class Aspose::Tasks::Task;
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;
407  friend class Aspose::Tasks::SplitPart;
408  friend class Aspose::Tasks::TaskBaseline;
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);
417 
418 protected:
419 
420  class ASPOSE_TASKS_SHARED_CLASS CalendarCacheKey : public System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey>, public System::Details::BoxableObjectBase
421  {
422  typedef CalendarCacheKey ThisType;
423  typedef System::IEquatable<Aspose::Tasks::Calendar::CalendarCacheKey> BaseType;
424 
425  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
426  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
427 
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);
430 
431  public:
432 
433  ASPOSE_TASKS_SHARED_API CalendarCacheKey(int32_t calUid, System::DateTime start, System::DateTime finish, double units);
434 
435  /// <inheritdoc ></inheritdoc>
436  ASPOSE_TASKS_SHARED_API bool Equals(Calendar::CalendarCacheKey other) override;
437  /// <inheritdoc ></inheritdoc>
438  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
439  /// <inheritdoc ></inheritdoc>
440  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
441 
442  ASPOSE_TASKS_SHARED_API CalendarCacheKey();
443 
444  protected:
445 
446  #ifdef ASPOSE_GET_SHARED_MEMBERS
447  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
448  #endif
449 
450 
451  private:
452 
453  double units;
454  int32_t calUid;
455  System::DateTime start;
456  System::DateTime finish;
457  int32_t cachedHashCode;
458 
459  };
460 
461 
462 public:
463 
464  /// <summary>
465  /// Gets the name of the calendar.
466  /// </summary>
467  ASPOSE_TASKS_SHARED_API System::String get_Name() const;
468  /// <summary>
469  /// Sets the name of the calendar.
470  /// </summary>
471  ASPOSE_TASKS_SHARED_API void set_Name(const System::String& value);
472  /// <summary>
473  /// Gets the unique identifier of the calendar.
474  /// </summary>
475  ASPOSE_TASKS_SHARED_API int32_t get_Uid() const;
476  /// <summary>
477  /// Sets the unique identifier of the calendar.
478  /// </summary>
479  ASPOSE_TASKS_SHARED_API void set_Uid(int32_t value);
480  /// <summary>
481  /// Gets WeekDaysCollection for this calendar.
482  /// The collection of weekdays that defines the calendar.
483  /// </summary>
484  ASPOSE_TASKS_SHARED_API const System::SharedPtr<WeekDayCollection>& get_WeekDays() const;
485  /// <summary>
486  /// Gets CalendarExceptionCollection object.
487  /// The collection of exceptions that is associated with the calendar.
488  /// </summary>
489  ASPOSE_TASKS_SHARED_API System::SharedPtr<CalendarExceptionCollection> get_Exceptions() const;
490  /// <summary>
491  /// Gets WorkWeekCollections object.
492  /// The collection of work weeks that is associated with the calendar.
493  /// </summary>
494  ASPOSE_TASKS_SHARED_API const System::SharedPtr<WorkWeekCollection>& get_WorkWeeks() const;
495  /// <summary>
496  /// Gets a value indicating whether the calendar is a base calendar.
497  /// </summary>
498  ASPOSE_TASKS_SHARED_API bool get_IsBaseCalendar();
499  /// <summary>
500  /// Gets the base calendar on which this calendar depends.
501  /// Only applicable if the calendar is not a base calendar.
502  /// </summary>
503  ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> get_BaseCalendar() const;
504  /// <summary>
505  /// Sets the base calendar on which this calendar depends.
506  /// Only applicable if the calendar is not a base calendar.
507  /// </summary>
508  ASPOSE_TASKS_SHARED_API void set_BaseCalendar(const System::SharedPtr<Calendar>& value);
509  /// <summary>
510  /// Gets a value indicating whether the calendar is a baseline calendar.
511  /// </summary>
512  ASPOSE_TASKS_SHARED_API bool get_IsBaselineCalendar();
513  /// <summary>
514  /// Sets a value indicating whether the calendar is a baseline calendar.
515  /// </summary>
516  ASPOSE_TASKS_SHARED_API void set_IsBaselineCalendar(bool value);
517  /// <summary>
518  /// Gets calendar's Guid.
519  /// </summary>
520  ASPOSE_TASKS_SHARED_API System::String get_Guid() const;
521 
522  /// <summary>
523  /// Creates default standard calendar.
524  /// </summary>
525  /// <param name="calendar">Calendar to make standard calendar from.</param>
526  /// <returns>Calendar with 5 working days (Monday-Friday) with working times 8-12 and 13-17.</returns>
527  static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendar(const System::SharedPtr<Calendar>& calendar);
528  /// <summary>
529  /// Makes a given Calendar to be a 24Hour Calendar.
530  /// 24Hours Calendar is a Calendar in which every day of week is working with Round-the-clock working hours.
531  /// </summary>
532  /// <param name="calendar">Calendar to make 24 Hours Calendar from.</param>
533  /// <returns>24Hour Calendar.</returns>
534  static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> Make24HourCalendar(const System::SharedPtr<Calendar>& calendar);
535  /// <summary>
536  /// Makes a given Calendar as Night Shift Calendar.
537  /// </summary>
538  /// <param name="calendar">Calendar to make Night Shift Calendar.</param>
539  /// <returns>Night Shift Calendar.</returns>
540  static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeNightShiftCalendar(const System::SharedPtr<Calendar>& calendar);
541  /// <summary>
542  /// Returns a value indicating whether this instance is equal to a specified object.
543  /// </summary>
544  /// <param name="obj">The object to compare with this instance.</param>
545  /// <returns><b>True</b> if o is a Calendar that has the same Uid value as this instance; otherwise, <b>false</b>.</returns>
546  ASPOSE_TASKS_SHARED_API bool Equals(System::SharedPtr<System::Object> obj) override;
547  /// <summary>
548  /// Returns a hash code for the instance of the class.
549  /// </summary>
550  /// <returns>a hash code for this object.</returns>
551  ASPOSE_TASKS_SHARED_API int32_t GetHashCode() const override;
552  /// <summary>
553  /// Removes calendar from project.
554  /// </summary>
555  ASPOSE_TASKS_SHARED_API void Delete();
556  /// <summary>
557  /// Returns StartDate based on specified FinishDate and Duration.
558  /// </summary>
559  /// <param name="finish">The specified finish date.</param>
560  /// <param name="duration">The specified work duration.</param>
561  /// <returns>Calculated StartDate.</returns>
562  ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, Duration duration);
563  /// <summary>
564  /// Returns StartDate based on specified FinishDate and Duration.
565  /// </summary>
566  /// <param name="finish">The specified finish date.</param>
567  /// <param name="duration">The specified work duration.</param>
568  /// <returns>Calculated StartDate.</returns>
569  ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateFromFinishAndDuration(System::DateTime finish, System::TimeSpan duration);
570  /// <summary>
571  /// Determines whether the day is working day.
572  /// </summary>
573  /// <param name="dt">The date to check day is working for.</param>
574  /// <returns>True if the day is working day.</returns>
575  ASPOSE_TASKS_SHARED_API bool IsDayWorking(System::DateTime dt);
576  /// <summary>
577  /// Return working hours for the specified dates.
578  /// </summary>
579  /// <param name="start">Start date.</param>
580  /// <param name="finish">Finish date.</param>
581  /// <returns>Working hours.</returns>
582  ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkUnit> GetWorkingHours(System::DateTime start, System::DateTime finish);
583  /// <summary>
584  /// Calculates the date when the specified amount of work time will pass according to the calendar.
585  /// </summary>
586  /// <param name="start">Start date.</param>
587  /// <param name="work">Work duration.</param>
588  /// <returns>Finish date.</returns>
589  ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start, Duration work);
590  /// <summary>
591  /// Calculates the date when the specified amount of work time will pass according to the calendar.
592  /// </summary>
593  /// <param name="start">Start date.</param>
594  /// <param name="work">Work duration.</param>
595  /// <returns>Finish date.</returns>
596  ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateByStartAndWork(System::DateTime start, System::TimeSpan work);
597  /// <summary>
598  /// Calculates the task finish date and time from its start date, split parts and the duration.
599  /// </summary>
600  /// <param name="task">The task to get finish date for.</param>
601  /// <param name="duration">The task duration to split on.</param>
602  /// <returns>Task's finish date.</returns>
603  /// <remarks>Returns DateTime.MinValue if task is summary, null or its start date is not set.</remarks>
604  ASPOSE_TASKS_SHARED_API System::DateTime GetTaskFinishDateFromDuration(const System::SharedPtr<Task>& task, System::TimeSpan duration);
605  /// <summary>
606  /// Returns amount of working hours at the date.
607  /// </summary>
608  /// <param name="dt">The date to get working hours for.</param>
609  /// <returns>Working hours.</returns>
610  ASPOSE_TASKS_SHARED_API System::TimeSpan GetWorkingHours(System::DateTime dt);
611  /// <summary>
612  /// Returns <see cref="WorkingTimeCollection"></see> of working times for the specified date.
613  /// </summary>
614  /// <param name="dt">The date to get working times for.</param>
615  /// <returns>List of <see cref="WorkingTime"></see>.</returns>
616  ASPOSE_TASKS_SHARED_API System::SharedPtr<WorkingTimeCollection> GetWorkingTimes(System::DateTime dt);
617  /// <summary>
618  /// Calculates previous working date end from the specified date.
619  /// </summary>
620  /// <param name="date">the specified instance of <see cref="DateTime"></see> struct.</param>
621  /// <returns>Previous working day start <see cref="System::DateTime"></see></returns>
622  ASPOSE_TASKS_SHARED_API System::DateTime GetPreviousWorkingDayEnd(System::DateTime date);
623  /// <summary>
624  /// Calculates next working day start from the date.
625  /// </summary>
626  /// <param name="date">The date to get next working day start for.</param>
627  /// <returns>Next working day start <see cref="System::DateTime"></see>.</returns>
628  ASPOSE_TASKS_SHARED_API System::DateTime GetNextWorkingDayStart(System::DateTime date);
629 
630 protected:
631 
632  /// <summary>
633  /// Gets WeekDaysCollection for this calendar.
634  /// The collection of weekdays that defines the calendar.
635  /// </summary>
636  ASPOSE_TASKS_SHARED_API void set_WeekDays(const System::SharedPtr<WeekDayCollection>& value);
637  /// <summary>
638  /// Gets calendar's Guid.
639  /// </summary>
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);
659 
660  /// <summary>
661  /// Initializes a new instance of the <see cref="Calendar"></see> class.
662  /// </summary>
663  ASPOSE_TASKS_SHARED_API Calendar();
664 
665  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Calendar, CODEPORTING_ARGS());
666 
667  /// <summary>
668  /// Initializes a new instance of the <see cref="Calendar"></see> class and sets Id value.
669  /// </summary>
670  /// <param name="uid">Unique identifier.</param>
671  ASPOSE_TASKS_SHARED_API Calendar(int32_t uid);
672 
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);
681  /// <summary>
682  /// Calculates task finish date, splits included.
683  /// </summary>
684  /// <param name="task">Task to calculate finish for.</param>
685  /// <param name="start">Start date to calculate finish from.</param>
686  /// <param name="duration">Duration</param>
687  /// <returns>Calculated task finish date.</returns>
688  ASPOSE_TASKS_SHARED_API System::DateTime GetFinishDateFromStartAndDuration(const System::SharedPtr<Task>& task, System::DateTime start, System::TimeSpan duration);
689  /// <summary>
690  /// Calculates task start date, splits included.
691  /// </summary>
692  /// <param name="task">Task to calculate start date for.</param>
693  /// <param name="finishDate">Finish date to calculate start from.</param>
694  /// <param name="duration">Duration</param>
695  /// <returns>Calculated task start date.</returns>
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);
699  /// <summary>
700  /// Calculates next working time start beginning from the date and time.
701  /// </summary>
702  /// <param name="date">The date and time.</param>
703  /// <returns>Next working time start.</returns>
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);
718  /// <summary>
719  /// Calculates the date when the specified amount of work time will pass according to the calendar and another calendar (resource calendar, for example)
720  /// </summary>
721  /// <param name="start">Start date.</param>
722  /// <param name="work">Amount of work.</param>
723  /// <param name="anotherCalendar">Another calendar that must not be ignored.</param>
724  /// <returns>Calculated finish date.</returns>
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);
727  /// <summary>
728  /// Calculates the date when the specified amount of work time will pass according to the calendar and another calendar (resource calendar, for example)
729  /// </summary>
730  /// <param name="finish">Finish date.</param>
731  /// <param name="work">Amount of work.</param>
732  /// <param name="anotherCalendar">Another calendar that must not be ignored.</param>
733  /// <returns>Calculated start date.</returns>
734  ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work, const System::SharedPtr<Calendar>& anotherCalendar);
735  /// <summary>
736  /// Calculates the date when the specified amount of work time will pass according to the calendar and another calendar (resource calendar, for example)
737  /// </summary>
738  /// <param name="finish">Finish date.</param>
739  /// <param name="work">Amount of work.</param>
740  /// <returns>Calculated start date.</returns>
741  ASPOSE_TASKS_SHARED_API System::DateTime GetStartDateByFinishAndWork(System::DateTime finish, System::TimeSpan work);
742  /// <summary>
743  /// Gets working times at the specified date "intersected" with the date's TimeOfDay.
744  /// </summary>
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();
748  /// <summary>
749  /// Creates default standard calendar.
750  /// </summary>
751  /// <returns>Created calendar.</returns>
752  static ASPOSE_TASKS_SHARED_API System::SharedPtr<Calendar> MakeStandardCalendarNoWeekend();
753  ASPOSE_TASKS_SHARED_API void SetWorkingExceptions(const System::SharedPtr<TimeScaledExceptions>& exceptionCollection);
754  /// <summary>
755  /// Creates default standard calendar.
756  /// </summary>
757  /// <returns>Created calendar.</returns>
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);
760  /// <summary>
761  /// Creates default standard calendar.
762  /// </summary>
763  /// <returns>Created calendar.</returns>
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();
768 
769  virtual ASPOSE_TASKS_SHARED_API ~Calendar();
770 
771  #ifdef ASPOSE_GET_SHARED_MEMBERS
772  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
773  #endif
774 
775 
776 private:
777 
778  System::SharedPtr<CalendarDatesCalculator> calculator;
779  System::SharedPtr<CalendarExceptionCollectionWithCache> exceptions;
780  System::SharedPtr<TimeScaledExceptions> workingExceptions;
781  NullableBool isBaselineCalendar;
782  System::WeakPtr<Aspose::Tasks::Resource> resource;
783  System::Nullable<bool> is24HourCal;
784  System::SharedPtr<Calendar> baseCalendar;
785  System::String guid;
786  int32_t isCacheEnabledNesting;
787  System::SharedPtr<IKeyValueCache<System::DateTime, System::SharedPtr<WorkingTimeCollection>>> calculationsCache;
788 
789  static System::SharedPtr<Calendar>& calendar24Hours();
790 
791  System::String pr_Name;
792  int32_t pr_Uid;
793  System::SharedPtr<WeekDayCollection> pr_WeekDays;
794  System::SharedPtr<WorkWeekCollection> pr_WorkWeeks;
795 
796  /// <summary>
797  /// Gets WorkWeekCollections object.
798  /// The collection of work weeks that is associated with the calendar.
799  /// </summary>
800  ASPOSE_TASKS_SHARED_API void set_WorkWeeks(const System::SharedPtr<WorkWeekCollection>& value);
801 
802  System::WeakPtr<Project> pr_ParentProject;
803  int32_t pr_ResourceUid;
804  bool pr_IsNull;
805  System::Guid pr_UnknownGuid;
806 
807  System::String get_DebuggerDisplay();
808  /// <summary>
809  /// Gets a value indicating whether the calendar is 'uniform' (work times are the same for days with the same DayOfWeek).
810  /// </summary>
811  bool get_IsUniform();
812 
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);
824 
825 };
826 
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);
829 
830 } // namespace Tasks
831 } // namespace Aspose
832 
833 
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
Definition: Asn.h:13