循环中的歧义
本文关键字:歧义 循环 | 更新日期: 2023-09-27 18:13:06
我得到的错误是"System.ArgumentOutOfRangeException未处理。"它要求月份在1到12之间。但看看调试器中的变量,它等于1,还有一个Debug.Writeline.
int month, year, total;
total = 0;
DateTime dayToFind;
for (year = 1001; year < 1201; year++){
for (month = 1; month < 12; month++){
dayToFind = new DateTime(year, month, DateTime.DaysInMonth(month, year));
// The error points at the last occurance of month above.
total = (dayToFind.DayOfWeek == DayOfWeek.Monday) ? 1 : 0;
}
}
您可以向后调用DateTime.DaysInMonth()
。更改为:
DateTime.DaysInMonth(year, month)
当您将year
变量放在month
的位置时,它大于最大值(大于12(,从而产生ArgumentOutOfRangeException
。
DateTime.DaysInMonth((
您反转了DaysInMonth方法的参数。年在前。