通过周期性划分时间段的功能

时间:2011-12-22 12:56:58

标签: c# .net .net-4.0

我需要帮助创建一个可以将一段时间划分为一年的常规周期的函数。

例如:我的期间为11/10/2011至08/07/2012,在常规学期划分。我想把这个结果放在一个列表中:

1-  11/10/2011 - 12/31/2011

2-  01/01/2012 - 06/30/2012

3-  07/01/2012 - 08/07/2012

1 个答案:

答案 0 :(得分:0)

正如你所说,它有点复杂但并非不可能。经过一番思考,你可以轻松地获得这个。我已经实现了代码但是为了给你的大脑一些工作我不会发布代码但是给你下面的伪代码。

我想到了以下方式。首先,你需要有一个你希望划分一年的持续时间,例如:6个月。

使用DateTime构造函数(年,月,日)获取开始日期并创建新日期,并将开始日期中的年份作为年份,月份和日期传递为1,如下所示:

new DateTime(startdate.Year, 1, 1);

这将为您提供该年的开始日期。然后将持续时间/月添加到该日期以获得下一个周期。如果您的开始日期小于此新日期,则再次将该持续时间添加到该新日期,直到您获得大于开始日期的日期为止。

使用上述逻辑,您可以形成所需的句点,直到结束日期。当然,你必须检查你的结束日期是否也符合这个周期。您还需要检查许多其他条件,以便在任何给定的开始和结束日期为正确的系统提供这些时间段。