ICAL.NET重复元素:从开始日期到结束日期的每个星期二(每周),每个第二个,最后一个星期一(每月)

问题描述 投票:0回答:1

ical附件(.ics)适用于所有情况,但每周重复一次,每月一次。我正在尝试创建一个工作日的每周重复,以及每个月的最后一个星期二/第二个星期二的每月重复。当我打开.ics文件时,它说“操作失败”。

每周:

evnt.Start = new CalDateTime(start);
evnt.End = new CalDateTime(new DateTime(evnt.Start.Year, evnt.Start.Month, evnt.Start.Day, end.Hour, end.Minute, end.Second));
rrule = new RecurrencePattern(FrequencyType.Weekly, 1);
rrule.ByDay.Add(new WeekDay(DayOfWeek.Monday));
rrule.Until = end;
evnt.RecurrenceRules = new List<RecurrencePattern> { rrule };

每月:

evnt.Start = new CalDateTime(start);
evnt.End = new CalDateTime(new DateTime(evnt.Start.Year, evnt.Start.Month, evnt.Start.Day, end.Hour, end.Minute, end.Second));
rrule = new RecurrencePattern(FrequencyType.Monthly,1);
rrule.Until = end;
rrule.ByDay.Add(new WeekDay(DayOfWeek.Sunday,FrequencyOccurrence.FifthToLast));
evnt.RecurrenceRules = new List<RecurrencePattern> { rrule };

[请让我知道我在做什么错。

c# asp.net outlook icalendar
1个回答
0
投票

您能否提供您的代码将输出的iCalendar数据?并可能向我们展示startend是什么。

我正在尝试创建一个工作日的每周定期重复

为此,iCalendar数据应如下所示:

FREQ=WEEKLY;BYDAY=MO;INTERVAL=1;UNTIL=20200515T220000Z

我选择星期一作为一天,并且也将结束日期设置为一个月,因为您也提供了结束时间。


我正在尝试为每个月的最后一个星期二/第二个星期二创建一个月度重复周期。

[@anmari指出,您的代码中有一个星期日,但您希望重复出现一个星期二。

为此,iCalendar应该看起来像这样:

FREQ=MONTHLY;BYDAY=2TU,-1TU;INTERVAL=1;UNTIL=20200515T220000Z

甚至是这样(带有BYSETPOS):

FREQ=MONTHLY;BYSETPOS=2,-1;BYDAY=TU;INTERVAL=1;UNTIL=20200515T220000Z
© www.soinside.com 2019 - 2024. All rights reserved.