RecurrenceRule

RecurrenceRule class

表示重复模式中的一个重复或例外规则。

public class RecurrenceRule

构造函数

姓名 描述
RecurrenceRule() 初始化RecurrenceRule类.

特性

姓名 描述
ByDay { get; } 获取日期。
ByHour { get; } 按小时获取。
ByMinute { get; } 按分钟获取。
ByMonth { get; } 获取按月。
ByMonthDay { get; } 获取按月的日期。
BySecond { get; } 按秒获取。
BySetPos { get; } 获取按集 pos.
ByWeekNo { get; } 获取按周编号。
ByYearDay { get; } 获取按年的日期。
Count { get; set; } 获取或设置计数。
EndType { get; set; } 获取或设置结束类型。
Frequency { get; set; } 获取或设置循环规则的类型。
FriendlyText { get; } 获取用户友好的规则文本。
Interval { get; set; } 获取或设置间隔。
Until { get; set; } 获取或设置直到.
WeekStart { get; set; } 获取或设置一周的开始日期。

评论

对应 iCalendar 中的 RRULE 或 EXRULE 部分。

要构建重复规则,您通常需要:

  1. 指定规则的类型Frequency.

  2. 指定重复模式如何结束使用EndTypeCount或者Until.

  3. 在一个或多个 ByXXX 集合中指定值。

请注意,如果发现 ByXXX 规则部分值超出了 available 范围(即,二月份的 BYMONTHDAY=30),它们将被简单地忽略。

不包含在规则中的信息,用于确定各种重复实例 开始时间和日期源自StartDate.例如, “FREQ=YEARLY;BYMONTH=1” 不指定月份或时间中的特定日期。此信息 将与为 DTSTART 指定的信息相同。

ByXXX 规则部分以某种方式修改重复。 ByXXX 规则部分在一段时间内与 相同或大于频率一般会减少或限制 重复生成的出现次数。例如,“FREQ=DAILY;BYMONTH=1”将重复实例数 从一月份的所有天数(如果不存在 BYMONTH 标签)减少到所有天数。 ByXXX 规则部分在 时间以内的频率一般会增加或扩大重复出现的次数。 例如,“FREQ=YEARLY;BYMONTH=1,2”将年度重复集 中的天数从 1(如果 BYMONTH 标记不存在)增加到 2。

如果指定了多个 ByXXX 规则部分,则在评估指定的频率和间隔 规则部分后,ByXXX 规则部分将按以下 顺序应用于当前评估的事件集:ByMonth ,ByWeekNo ,ByYearDay ,ByMonthDayByDay ,ByHour ,ByMinute ,BySecondBySetPos ;然后CountUntil被评估。

也可以看看