двусмысленность в петлях? - PullRequest
0 голосов
/ 01 ноября 2011

Я получаю сообщение об ошибке: «System.ArgumentOutOfRangeException не обработан». Он запрашивает, чтобы month находилось между 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;
        }

    }

Ответы [ 2 ]

8 голосов
/ 01 ноября 2011

У вас есть DateTime.DaysInMonth() звонок в обратном направлении. Измените это на это:

DateTime.DaysInMonth(year, month)

Когда вы поместили переменную year вместо month, она превысила максимально допустимое значение (более 12), что привело к ArgumentOutOfRangeException.

DateTime.DaysInMonth ()

2 голосов
/ 01 ноября 2011

Вы изменили аргументы для метода DaysInMonth. Год идет первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...