Странное форматеэксексуал после обновления в против 2010

StackOverflow https://stackoverflow.com/questions/3225147

  •  13-09-2020
  •  | 
  •  

Вопрос

Я получаю этот форматеэксемент после того, как я обновил до VS 2010. Не все действительно особенное. Код:

private void ManageDateEditControls()
{
    apoDateEdit.DateTime = DateTime.Parse(string.Format("01/{0}/{1}", DateTime.Now.Month-1, DateTime.Now.Year));
    eosDateEdit.DateTime = DateTime.Parse(string.Format("{0}/{1}/{2}", GetLastDayOfMonth(DateTime.Now.Month + 1),
        DateTime.Now.Month - 1, DateTime.Now.Year)); <-- FormatException occurs in this line.
}

private static int GetLastDayOfMonth(int month)
{
    // set return value to the last day of the month
    // for any date passed in to the method

    // create a datetime variable set to the passed in date
    DateTime dtTo = new DateTime(DateTime.Now.Year, month, 1);

    // overshoot the date by a month
    dtTo = dtTo.AddMonths(1);

    // remove all of the days in the next month
    // to get bumped down to the last day of the
    // previous month
    dtTo = dtTo.AddDays(-(dtTo.Day));

    // return the last day of the month
    return dtTo.Day;
}
.

Позвольте сказать, что вы получите сейчас, если вы запускаете это 31/6/2010.Я думаю, что это действительная дата. Я проверил дату, которая генерируется и все в порядке ... этот проект никогда не имел этой проблемы, когда работал в VS 2008.

Любые идеи?

Это было полезно?

Решение

Ваш FormatException вызван прохождением генеракодицетагкода в качестве аргумента для 31/6/2010.31/6/2010 не является действительной датой - в июне всего 30 дней.

Если вам нужен последний день в любое время месяца, вам было бы лучше использовать DateTime.Parse() Метод.Требуется как в месяц, так и в год, как аргументы, так что он может иметь дело с прыжками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top