Могу ли я выполнить безопасную проверку перед вызовом DateTime.AddMonths (int месяцы)? - PullRequest
3 голосов
/ 02 февраля 2010

Если я вызываю AddMonths для объекта DateTime, используя слишком большое значение типа int, я получаю ArgumentException, брошенное мне в лицо, с вежливым сообщением, которое говорит:

"При добавлении или вычитании значения получается-representable DateTime. Имя параметра: month "

Какую проверку я должен выполнить для аргумента month перед вызовом этого метода?

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

С MSDN :

ArgumentOutOfRangeException

Полученное значение DateTime меньше MinValue или больше MaxValue .

-или-

месяцев меньше -120 000 или больше 120 000.

На основании вашего комментария я бы сказал, что значение результирующих месяцев превышает 120 000.

Вы можете получить общее количество месяцев в текущем времени и проверить, что это плюс ваше значение не выходит за пределы диапазона, или поймать исключение, как предлагали другие.

1 голос
/ 02 февраля 2010

Оберните метод AddMonths в блок try, если вы предвидите такую ​​проблему.

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