2011-12-22 7 views
-5

時間を一定の周期の1年に分けることができる関数を作成するには、助けが必要です。
周期を周期で除算する関数

例:私は、11/10/2011から2012/08/07までの期間が正規の学期に分かれています。この結果をリストに入れたい:

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

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

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

あなたはこれまでに何を試しましたか?私たちはあなたにそれを手伝ってくれるでしょう。私たちはあなたのためにそれをしません。 – Amy

+1

ヒント: var daysBetween =(endDate - startDate).TotalDays; var semesterDuration = daysBetween/3; var endDataSemester1 = startDate.AddDays(semesterDuration); –

+0

私が試したことは私を解決に導かなかった。それは少し長すぎて複雑でした。それで私はここに来たのです...私は影響を避けるために私のソリューションを置くつもりはありません。私は機能を使う準備ができていないと思っています。 – Hichem86

答えて

0

あなたが言ったように、それは少し複雑ですが不可能ではありません。小さな思考でこれを簡単に得ることができます。私はコードを実装しましたが、あなたの脳にコードを投稿するのではなく、あなたに以下の擬似コードを渡しています。

私は次のように考えました。まず、年を分割する期間を必要とします(例:6ヶ月)。

開始日を取り、DateTimeのコンストラクタ(年、月、日)を使用して、新しい日付を作成し、以下のように1として年と月と日と開始日の年渡し:

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

これにより、その年の開始日が与えられます。次に、次の周期性を得るために、その日に継続日/月を追加します。開始日がこの新しい日付よりも小さい場合は、開始日より大きい日付を取得するまで、その新しい日付に期間をもう一度追加します。

上記のロジックを使用すると、終了日までの期間を設定することができます。もちろん、この周期性と同様に終了日もチェックする必要があります。特定の開始日と終了日にこれらの期間を与える適切なシステムを得るためにチェックする必要がある他の多くの条件があります。

+0

ありがとうJPReddy!あなたの答えは簡単な解決策に私を導いた。 – Hichem86

関連する問題