特定の日付の同じ日(例:水曜日)と同じ週(例:最初または2番目...)を持つNか月後の日付を取得するためのロジックを探しています。
例: 12-06-2013 (水曜日と 6 月の第 3 週) が指定された日付です。ここでは、指定された日付に 3 か月を追加しています。結果は 2013 年 8 月 14 日 (水曜日と 8 月の第 3 週) になります。
さらに明確にする必要がある場合はお知らせください。
前もって感謝します。
標準の MDSN を使用 年 = 2013 月 = 06 日 = 12
1)特定の日付から曜日を取得する (日曜日が 0)
DateTime dateValue = new DateTime(year, month, date);
Console.WriteLine((int) dateValue.DayOfWeek); // Displays 3 implying it is Wed
2)特定の日付からその月の週を取得する
DayofWeek = 3 (from previous calculation)
Day = 12
EndOfWeek = Day + (6 - DayOfWeek) = 12 + 4 = 16
NoWeek = 0
while (EndOfWeek > 0)
{
EndOfWeek -= 7;
NoWeek++;
}
=> 週なし = 3
3) N か月後の最初の日付を取得する
DateTime newDate = new DateTime(year, month, 1)
newDate.AddMonths(N); // Let it be 2 => August 1, 2013
4)新しい日付の曜日を取得する
newDay = newDate.DayOfWeek // Return 4 implying Thursday
5) NoWeek の後の最終日を取得する
newDate.AddDays(6-newDay) => newDate.AddDays (6-4) => August 3,2013
NoWeek--;
while (NoWeek > 1)
{
newDate.AddDays(7);
NoWeek--;
}
=> newDate は 2013 年 8 月 10 日になります
6)必要な日付を計算する
newDate.AddDays(DayofWeek) =>newDate will be August 14,2013