2011-04-19 74 views
0

我有一个包含开始和结束日期的事件列表(例如List),有些事件可以是每周事件(IsWeekly)。我需要从单个事件创建每周事件列表。例如。C#从父事件创建子事件

myEvent开始19/04/2011结束10/05/2011(这是在我的数据库中的单个事件)

我需要这样的输出:

myEvent 19/04/2011

myEvent 26/04/2011

myEvent 2011年3月5日

myEvent 10/05/2011

需要将上述4个事件添加到我的列表中,并移除原始“父”事件。

回答

2
var current = startDate; 
do { 
    list.Add(new MyEvent("My Event", current)); 
    current = current.AddDays(7); 
} while (current < endDate); 
0

我不知道,我已经理解正确你的问题,但我认为你需要定义你的委托类型,然后定义事件:

delegate void YourDelegate(DateTime d); 
event YourDelegate YourEvent = null; 

,然后调用它,当需要时:

if (YourEvent != null) YourEvent(DateTime.Now); 
0

做一个查找表,有两列是关键事件,并有ParentEvent | ChildEvent布局,因此,如果你的“父母”有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; 
}