如何根据c#中的日期范围动态生成事件

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

我有一个用c#编写的应用程序,允许用户管理事件,添加时我允许用户添加重复类型:每日,每月,每周,以及另一个选择重复多少次或直到哪一天的选项。应该重复。

现在显示事件时,我需要显示一周中所有可用的事件。

例如:用户今天添加了一个活动,该活动每天重复30天

显示事件时,我使用以下查询事件

var events = db.Evnt.Where(l => l.repeatTill >= weekEnd).ToList()

一旦获得结果,我需要生成重复事件并将其显示给用户,我该如何实现

最终输出应该是这样的

E1
11/24/2019 10:00 - 11/24/2019 11:00
E1
11/25/2019 10:00 - 11/25/2019 11:00
E1
11/26/2019 10:00 - 11/26/2019 11:00
E1
11/27/2019 10:00 - 11/27/2019 11:00
E1
11/28/2019 10:00 - 11/28/2019 11:00
E1
11/29/2019 10:00 - 11/29/2019 11:00
E1
11/30/2019 10:00 - 11/30/2019 11:00
E1
12/01/2019 10:00 - 12/01/2019 11:00

如果用户从11/24/2019-12/08/2019进行过滤,则输出应为

E1
11/24/2019 10:00 - 11/24/2019 11:00
E1
11/25/2019 10:00 - 11/25/2019 11:00
E1
11/26/2019 10:00 - 11/26/2019 11:00
E1
11/27/2019 10:00 - 11/27/2019 11:00
E1
11/28/2019 10:00 - 11/28/2019 11:00
E1
11/29/2019 10:00 - 11/29/2019 11:00
E1
11/30/2019 10:00 - 11/30/2019 11:00
E1
12/01/2019 10:00 - 12/01/2019 11:00
E1
12/02/2019 10:00 - 12/02/2019 11:00
E1
12/03/2019 10:00 - 12/03/2019 11:00
E1
12/04/2019 10:00 - 12/04/2019 11:00
E1
12/05/2019 10:00 - 12/05/2019 11:00
E1
12/06/2019 10:00 - 12/06/2019 11:00
E1
12/07/2019 10:00 - 12/07/2019 11:00
E1
12/08/2019 10:00 - 12/08/2019 11:00

我该如何实现?

c# .net winforms linq datetime
2个回答
0
投票

因此,根据您的数据,您知道(或可以计算)该事件的第一个实例到最后一个事件之间的日期范围?然后,您只需要计算这些日期之间的天数即可。]


0
投票

您可以根据可用数据计算日期范围之间的差异,然后运行循环以生成该日期范围内的事件。确保将事件的开始日期更改为计算时差时使用的日期范围开始日期的开始日期。

© www.soinside.com 2019 - 2024. All rights reserved.