2

特定の日付の同じ日(例:水曜日)と同じ週(例:最初または2番目...)を持つNか月後の日付を取得するためのロジックを探しています。

例: 12-06-2013 (水曜日と 6 月の第 3 週) が指定された日付です。ここでは、指定された日付に 3 か月を追加しています。結果は 2013 年 8 月 14 日 (水曜日と 8 月の第 3 週) になります。

さらに明確にする必要がある場合はお知らせください。

前もって感謝します。

4

2 に答える 2

1

標準の 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
于 2013-06-12T10:04:44.290 に答える