我有一个事件列表(例如List),它们有一个开始和结束日期,一些事件可以是每周事件(IsWeekly)。我需要从单个事件中创建每周事件列表。 E.g。
myEvent start 19/04/2011 ends 10/05/2011(这是我数据库中的单个事件)
我需要输出:
myEvent 19/04/2011
myEvent 26/04/2011
myEvent 03/05/2011
myEvent 10/05/2011
上述4个事件需要添加到我的列表中,并删除原始的“父”事件。
答案 0 :(得分:2)
var current = startDate;
do {
list.Add(new MyEvent("My Event", current));
current = current.AddDays(7);
} while (current < endDate);
答案 1 :(得分:0)
我不确定我是否正确理解了您的问题,但我认为您需要定义您的委托类型,然后定义一个事件:
delegate void YourDelegate(DateTime d);
event YourDelegate YourEvent = null;
然后在需要时调用它:
if (YourEvent != null) YourEvent(DateTime.Now);
答案 2 :(得分:0)
创建一个查找表,它有两列作为事件的键,并具有ParentEvent | ChildEvent布局,因此如果您的“父”有3个孩子,则他的键会被列出3次,与不同的子键相关联。
答案 3 :(得分:0)
List<DateTime> GetEvents(DateTime start, DateTime end)
{
List<DateTime> events = new List<DateTime>();
DateTime e = start;
while(e <= end)
{
e = e.AddDays(7);
events.Add(e);
}
return events;
}