以下のコードを使用して、すべての平日を取得しようとしています。
private List<DateTime> getWeekDays(DateTime dt)
{
List<DateTime> result = new List<DateTime>();
int month = dt.Month;
dt = dt.AddDays(-dt.Day + 1);//Sets dt to first day of month
//Sets dt to the first week day of the month;
if (dt.DayOfWeek != DayOfWeek.Monday)
while (dt.DayOfWeek != DayOfWeek.Friday)
dt = dt.AddDays(1);
//Adds the week day and stops when next month is reached.
while (dt.Month == month)
{
result.Add(dt);
dt = dt.AddDays(dt.DayOfWeek == DayOfWeek.Friday ? 3 : 1);
}
return result;
}
しかし、これは正しく機能していません。July
メソッドに月を渡すとgetWeekDays(DateTime dt)
、すべての曜日が正しく与えられます。August
ただし、またはを渡すとSemptember
、上記のコードは指定された月のすべての曜日を返しません。
エラーはどこにありますか?