C# で日付を渡して、月の平日の数を見つけようとしています。
例: 「2013 年 3 月 6 日 (2013 年 3 月 6 日)」を渡すと、関数はその月の第 1 水曜日を示す必要があります。「2013 年 3 月 1 日 (2013 年 3 月 1 日)」を渡すと、関数はその月の第 1 金曜日と言うはずです。「2013 年 3 月 13 日 (2013 年 3 月 13 日)」を渡すと、関数はその月の第 2 水曜日を示す必要があります。
私はこの関数を使用しようとしていましたが、その月の週を返します (つまり、「2013 年 3 月 6 日 (2013 年 3 月 6 日)」を渡すと 2 が返されます):
public static int GetWeekOfMonth(DateTime date)
{
DateTime beginningOfMonth = new DateTime(date.Year, date.Month, 1);
while (date.Date.AddDays(1).DayOfWeek != CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek)
date = date.AddDays(1);
return (int)Math.Truncate((double)date.Subtract(beginningOfMonth).TotalDays / 7f) + 1;
}
月の平日の数を取得する方法について提案してください。