Следующие 2 строки добавляют ту же сумму к той же дате, и часть даты результатов совпадает, но каким-то образом есть разница во временной части!
(new DateTime(2000,1,3,18,0,0)).AddDays(4535);
(new DateTime(2000,1,3,18,0,0)).AddMonths(149);
вы получите разницу15 секунд, и с обоими, по крайней мере, с округлением до дней, я не знаю, почему это произошло, но это происходит только с AddDays, но не с AddMonths (даже с добавлением тысяч месяцев)
Редактировать 1
Итак, я попытался создать пример проекта, но безуспешно.Если я запускаю свой основной проект и помещаю строки с образцами в часы, то я получаю 2 отдельных значения, если я начинаю с нуля, проблема не в этом.Проект 3.5, c #, vs2010, win7hp x64 (proj: x86).Я пытаюсь воспроизвести это также в новом небольшом проекте, я напишу, если он у меня будет.
Это мои результаты в основном проекте (в зависимости от часов!):
(new DateTime(2000, 1, 3, 18, 0, 0)).AddDays(4535).Ticks
634743432153600000 long
(new DateTime(2000, 1, 3, 18, 0, 0)).AddMonths(149).Ticks
634743432000000000 long
Редактировать 2
Мне удалось сузить его еще больше.У нас есть самодельный компонент, панель основания, мы рисуем на нем с помощью DirectX.Если я сделаю это visible = false, чем visible = true, то возникнет ошибка, прежде чем visible = true (или show ()), вычисление будет правильным.Что в мире может быть там, что результат получает что-то другое формулы, где переменная не используется.Культура не влияет на компонент ..