循环中的歧义

本文关键字:歧义 循环 | 更新日期: 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方法的参数。年在前。