Class Calendar
Namespace: Aspose.Tasks
Assembly: Aspose.Tasks.dll (25.2.0)
表示在项目中使用的日历。
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Calendar
继承
继承的成员
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
示例
如何从头开始创建简单的日历。
// 创建空日历
Calendar calendar = new Calendar("新日历");
// 添加默认工作日(从9:00到17:00的8个工作小时)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
// 创建新的工作日
WeekDay myWeekDay = new WeekDay(DayType.Thursday);
// 设置工作时间。DateTime的时间部分是重要的
WorkingTime wt1 = new WorkingTime();
wt1.FromTime = new DateTime(1, 1, 1, 6, 0, 0, 0);
wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
WorkingTime wt2 = new WorkingTime();
wt2.FromTime = new DateTime(1, 1, 1, 14, 0, 0, 0);
wt2.ToTime = new DateTime(1, 1, 1, 18, 0, 0, 0);
myWeekDay.WorkingTimes.Add(wt1);
myWeekDay.WorkingTimes.Add(wt2);
myWeekDay.DayWorking = true;
calendar.Days.Add(myWeekDay);
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday));
// 添加周末
calendar.Days.Add(new WeekDay(DayType.Saturday));
calendar.Days.Add(new WeekDay(DayType.Sunday));
' 创建空日历
Dim calendar As Calendar = New Calendar("新日历")
' 添加默认工作日(从9:00到17:00的8个工作小时)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday))
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday))
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday))
' 创建新的工作日
Dim myWeekDay As WeekDay = New WeekDay(DayType.Thursday)
' 设置工作时间。DateTime的时间部分是重要的
Dim wt1 As WorkingTime = New WorkingTime()
wt1.FromTime = New DateTime(1, 1, 1, 6, 0, 0, 0)
wt1.ToTime = New DateTime(1, 1, 1, 12, 0, 0, 0)
Dim wt2 As WorkingTime = New WorkingTime()
wt2.FromTime = New DateTime(1, 1, 1, 14, 0, 0, 0)
wt2.ToTime = New DateTime(1, 1, 1, 18, 0, 0, 0)
myWeekDay.WorkingTimes.Add(wt1)
myWeekDay.WorkingTimes.Add(wt2)
myWeekDay.DayWorking = True
calendar.Days.Add(myWeekDay)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday))
' 添加周末
calendar.Days.Add(New WeekDay(DayType.Saturday))
calendar.Days.Add(New WeekDay(DayType.Sunday))
备注
日历用于定义标准的工作和非工作时间。
项目必须有一个基础日历。任务和资源可以有自己的非基础日历,这些日历基于基础日历。
属性
BaseCalendar
获取或设置此日历所依赖的基础日历。
仅在日历不是基础日历时适用。
public Calendar BaseCalendar { get; set; }
属性值
Exceptions
获取 CalendarExceptionCollection 对象。
与日历相关的异常集合。
public CalendarExceptionCollection Exceptions { get; }
属性值
Guid
获取日历的 Guid。
public string Guid { get; }
属性值
IsBaseCalendar
获取一个值,指示该日历是否为基础日历。
public bool IsBaseCalendar { get; }
属性值
IsBaselineCalendar
获取或设置一个值,指示该日历是否为基线日历。
public bool IsBaselineCalendar { get; set; }
属性值
Name
获取或设置日历的名称。
public string Name { get; set; }
属性值
Uid
获取或设置日历的唯一标识符。
public int Uid { get; set; }
属性值
WeekDays
获取此日历的 WeekDaysCollection。
定义日历的工作日集合。
public WeekDayCollection WeekDays { get; }
属性值
WorkWeeks
获取 WorkWeekCollections 对象。
与日历相关的工作周集合。
public WorkWeekCollection WorkWeeks { get; }
属性值
方法
Delete()
从项目中移除日历。
public void Delete()
Equals(object)
返回一个值,指示此实例是否与指定对象相等。
public override bool Equals(object obj)
参数
obj
object
要与此实例比较的对象。
返回
True 如果 o 是一个具有与此实例相同 Uid 值的 Calendar;否则,false。
GetFinishDateByStartAndWork(DateTime, Duration)
计算根据日历经过指定工作时间的日期。
public DateTime GetFinishDateByStartAndWork(DateTime start, Duration work)
参数
start
DateTime
开始日期。
work
Duration
工作持续时间。
返回
完成日期。
GetFinishDateByStartAndWork(DateTime, TimeSpan)
计算根据日历经过指定工作时间的日期。
public DateTime GetFinishDateByStartAndWork(DateTime start, TimeSpan work)
参数
start
DateTime
开始日期。
work
TimeSpan
工作持续时间。
返回
完成日期。
GetHashCode()
返回该类实例的哈希代码。
public override int GetHashCode()
返回
该对象的哈希代码。
GetNextWorkingDayStart(DateTime)
从日期计算下一个工作日的开始时间。
public DateTime GetNextWorkingDayStart(DateTime date)
参数
date
DateTime
要获取下一个工作日开始的日期。
返回
下一个工作日的开始时间 System.DateTime。
GetPreviousWorkingDayEnd(DateTime)
从指定日期计算上一个工作日的结束时间。
public DateTime GetPreviousWorkingDayEnd(DateTime date)
参数
date
DateTime
指定的 System.DateTime 结构实例。
返回
上一个工作日的结束时间 System.DateTime。
GetStartDateFromFinishAndDuration(DateTime, Duration)
根据指定的完成日期和持续时间返回开始日期。
public DateTime GetStartDateFromFinishAndDuration(DateTime finish, Duration duration)
参数
finish
DateTime
指定的完成日期。
duration
Duration
指定的工作持续时间。
返回
计算出的开始日期。
GetStartDateFromFinishAndDuration(DateTime, TimeSpan)
根据指定的完成日期和持续时间返回开始日期。
public DateTime GetStartDateFromFinishAndDuration(DateTime finish, TimeSpan duration)
参数
finish
DateTime
指定的完成日期。
duration
TimeSpan
指定的工作持续时间。
返回
计算出的开始日期。
GetTaskFinishDateFromDuration(Task, TimeSpan)
根据其开始日期、拆分部分和持续时间计算任务的完成日期和时间。
public DateTime GetTaskFinishDateFromDuration(Task task, TimeSpan duration)
参数
task
Task
要获取完成日期的任务。
duration
TimeSpan
要拆分的任务持续时间。
返回
任务的完成日期。
备注
如果任务是摘要、null 或其开始日期未设置,则返回 DateTime.MinValue。
GetWorkingHours(DateTime, DateTime)
返回指定日期的工作小时。
public WorkUnit GetWorkingHours(DateTime start, DateTime finish)
参数
start
DateTime
开始日期。
finish
DateTime
结束日期。
返回
工作小时。
GetWorkingHours(DateTime)
返回指定日期的工作小时数。
public TimeSpan GetWorkingHours(DateTime dt)
参数
dt
DateTime
要获取工作小时的日期。
返回
工作小时。
GetWorkingTimes(DateTime)
返回指定日期的 Aspose.Tasks.WorkingTimeCollection 工作时间。
public WorkingTimeCollection GetWorkingTimes(DateTime dt)
参数
dt
DateTime
要获取工作时间的日期。
返回
Aspose.Tasks.WorkingTime 的列表。
IsDayWorking(DateTime)
确定该天是否为工作日。
public bool IsDayWorking(DateTime dt)
参数
dt
DateTime
要检查是否为工作日的日期。
返回
如果该天是工作日则为真。
Make24HourCalendar(Calendar)
将给定日历设置为 24 小时日历。
24 小时日历是一个每周的每一天都在全天候工作时间的日历。
public static Calendar Make24HourCalendar(Calendar calendar)
参数
calendar
Calendar
要从中制作 24 小时日历的日历。
返回
24 小时日历。
MakeNightShiftCalendar(Calendar)
将给定日历设置为夜班日历。
public static Calendar MakeNightShiftCalendar(Calendar calendar)
参数
calendar
Calendar
要制作夜班日历的日历。
返回
夜班日历。
MakeStandardCalendar(Calendar)
创建默认标准日历。
public static Calendar MakeStandardCalendar(Calendar calendar)
参数
calendar
Calendar
要从中制作标准日历的日历。
返回
具有 5 个工作日(周一至周五),工作时间为 8-12 和 13-17 的日历。