Проблема с .NET AddDays

Следующие 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

Edit 2

Удалось сузить еще больше. У нас есть самодельный компонент, панель-основа, рисуем на ней directx. Если я сделаю то видимым =false, чем visible=true, чем приходит ошибка, перед visible=true (или show()) расчет правильный. Что в мире может быть, что в результате получается что-то еще из формулы, где не используется никакая переменная. Культура не затрагивается в компоненте.

12
задан kapa 4 May 2012 в 17:17
поделиться