Чтобы избежать ярлыка duplicate вот краткий обзор всего, что я сделал.Использование NodaTime для datetimepicker
Потратив несколько часов прибегая к помощи, чтобы вычислить разницу между двумя датами я наткнулся here и here где, я был убежден, чтобы использовать NodaTime, чтобы получить разницу в годах, месяцах и применение days.My нуждается в точности для расчета пенсии. Я использовал datetimepicker
, чтобы получить значение даты из формы, а затем я использую Date.cs
от here, чтобы извлечь дату в dd/mm/year
, а затем вставить его в базу данных. Чтобы вычесть две даты, используя Period.Between(date1, date2, PeriodUnits.Years).Years
, как я должен пройти datetimepicker
?
Here's, что Джон Скит сказал: «Вы можете использовать LocalDateTime.FromDateTime
, а затем использовать Date
свойство, чтобы получить LocalDate
».
Как я могу полностью избавиться от времени при вставке в базу данных, а также найти разницу при использовании datetimepicker
вместо Datetime
.
Update:
//Date of appointment
var d_app = LocalDateTime.FromDateTime(dateTimePicker1.Value).Date;
//Date of retirement
var d_ret = LocalDateTime.FromDateTime(dateTimePicker2.Value).Date;
var years=Period.Between(d_app,d_ret,PeriodUnits.Years).Years;
var months = Period.Between(d_app, d_ret, PeriodUnits.Months).Months;
var days = Period.Between(d_app, d_ret, PeriodUnits.Days).Days;
MessageBox.Show(years.ToString()+" years"+months.ToString()+"months "+days.ToString()+"days");
Предоставление кода datetimepicker1.value
как 2/21/1990
(d_app) и datetimepicker2.value
как 3/09/2015
(d_ret) он вернулся 25 yrs 300months 9147 days
.
Что я делаю неправильно?
«но это не работает» не говорит нам ничего о том, что вы видите, - но это явно не правильный код, учитывая, что «DateTime datetimepicker.Days.ToString» ISN» t, даже слегка действительный как аргумент метода. Также нет необходимости использовать этот другой код «Дата». Почему вы называете «Дни»? Почему вы ссылаетесь на «ToString»? –
Обратите внимание, что использование @JonSkeet для вопроса, который я не видел раньше, ничего не делает, кстати. –
Похоже, вы просто хотите «var dateOfBirth = LocalDateTime.FromDateTime (dateTimePicker.Value) .Date;' –