Чем больше часов вы добавляете в класс DateTime, тем больше времени теряете - PullRequest
0 голосов
/ 10 марта 2019

У меня проблема с DateTime.AddHours методом в C #.Я заметил, что чем больше часов я добавляю к определенной дате / времени.Чем больше дней / часов я теряю.Например:

DateTime DateOne = DateTime.Now;;
DateTime DateTwo = DateOne.AddHours(438000); // 50 years

Я добавляю 50 лет в час к классу DateOne, поэтому я должен получить 3/10/2069.

Однако, если вы напечатаете DateOne, вы получите: 3/ 10/2019, которая является текущей датой, но если вы напечатаете DateTwo, вы получите: 25.02.2069.Это более 10 дней, потерянных за 50 лет.

Должно быть что-то не так.Что именно я делаю не так?

Ответы [ 2 ]

6 голосов
/ 10 марта 2019

Рассмотрим влияние високосных лет на 50 лет.Вы должны потерять приблизительно 12 дней в этом расчете.

2 голосов
/ 10 марта 2019

Используйте AddYears(50) для добавления лет.

Часы работы:

438000 = 50 * 365 * 24

В григорианском календаре каждый високосный год имеет 366 дней вместо 365, увеличивая февраль до 29 дней вместо обычных 28.

Подробнее: https://en.wikipedia.org/wiki/Leap_year

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