using System; using Quartz.Impl.Calendar; namespace Quartz { /**////<summary> /// An interface to be implemented by objects that define spaces of time during /// which an associated <see cref="Trigger" /> may fire. ///</summary> ///<remarks> /// Calendars do not define actual fire times, but rather are used to limit a ///<see cref="Trigger" /> from firing on its normal schedule if necessary. Most /// Calendars include all times by default and allow the user to specify times to /// exclude. As such, it is often useful to think of Calendars as being used to ///<i>exclude</i> a block of time, as opposed to <i>include</i> /// a block of time. (i.e. the schedule "fire every five minutes except on Sundays" could be /// implemented with a <see cref="SimpleTrigger" /> and a <see cref="WeeklyCalendar" /> which excludes Sundays) ///</remarks> ///<author>James House</author> ///<author>Juergen Donnerstag</author> publicinterface ICalendar { /**////<summary> /// Gets or sets a description for the <see cref="ICalendar" /> instance - may be /// useful for remembering/displaying the purpose of the calendar, though /// the description has no meaning to Quartz. ///</summary> string Description { get; set; } /**////<summary> /// Set a new base calendar or remove the existing one. /// Get the base calendar. ///</summary> ICalendar CalendarBase { set; get; } /**////<summary> /// Determine whether the given time is 'included' by the /// Calendar. ///</summary> bool IsTimeIncluded(DateTime time); /**////<summary> /// Determine the next time that is 'included' by the /// Calendar after the given time. ///</summary> DateTime GetNextIncludedTime(DateTime time); } }