2011-12-22 22 views
-5

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

例如:我有一段时间从11/10/2011到2012年7月8日分为正常学期。我想在列表中得到这样的结果:

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

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

3- 07/01/2012 - 08/07/2012 
+7

你到目前为止尝试过什么?我们会*帮助你。我们不会为你做。 – Amy 2011-12-22 13:01:37

+1

一些提示: var daysBetween =(endDate - startDate).TotalDays; var semesterDuration = daysBetween/3; var endDataSemester1 = startDate.AddDays(semesterDuration); – 2011-12-22 13:14:03

+0

我试过的东西并没有让我接触到解决方案。这有点过长和复杂。这就是为什么我来到这里...我不会把我的解决方案,以避免影响..我不寻找一个准备使用的功能,但一个理论上可实施的解决方案。 – Hichem86 2011-12-22 16:36:30

回答

0

正如你所说,这是有点复杂,但并非不可能。小思想你可能很容易得到这个。我已经实现了代码,但为了让你的大脑做些工作,我没有发布代码,而是给你下面的伪代码。

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

采取的开始日期和使用日期时间构造(年,月,日)创建一个新的日期和年份和月份和日期经过一年的开始日期为1如下:

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

这会给你那年的开始日期。然后添加该日期的持续时间/月,以获得下一个周期。如果您的开始日期小于这个新日期,则再次添加持续时间到该新日期,直到您获得的日期大于开始日期。

有了上述逻辑,你可以形成你想要的期间,直到结束日期。当然,你必须检查你的结束日期是否符合这种周期性。还有很多其他的条件需要检查,以获得适当的系统给这些期间的任何给定的开始和结束日期。

+0

谢谢JPReddy!你的回答引导我一个简单的解决方案。 – Hichem86 2011-12-25 07:29:23