2011-12-22 41 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