Как я могу установить час по умолчанию в DateTimePicker каждый раз, когда пользователь выбирает дату? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть два DateTimePicker, один с именем FechaEntrada, а другой FechaSalida.

Я хочу установить FechaEntrada.Value на "whatever_date_the_user_picked 00:00:00" и FechaSalida.Value на "whatever_date_the_user_picked 23:59:59" каждый раз, когда пользователь выбирает дату.

Мне нужно сравнить оба значения из dtpickers, чтобы я мог заполнить DatagridView из базы данных значениями, выбранными между этими двумя датами.

В моей форме окна пользователь не может выбрать час, просто дату. Как я могу это сделать? Это кажется простым, но я нигде не могу найти решение.

1 Ответ

1 голос
/ 30 апреля 2019

Сделайте так, чтобы пользователь видел / выбирал только дату:

FechaEntrada.Format = DateTimePickerFormat.Custom;
FechaEntrada.CustomFormat = "yyyy-MM-dd"; //or whatever date you want
FechaSalida.Format = DateTimePickerFormat.Custom;
FechaSalida.CustomFormat = "yyyy-MM-dd"; //or whatever date you want

Когда вы хотите получить даты:

FechaEntrada.Value.Date; //"whatever_date_the_user_picked 00:00:00"
FechaSalida.Value.Date.AddDays(1).AddSeconds(-1); //"whatever_date_the_user_picked 23:59:59".

DateTimePicker.Value возвращает DateTime

При вызове DateTime.Date указывается дата в полночь 00:00:00 (это все еще дата) - https://docs.microsoft.com/en-us/dotnet/api/system.datetime.date?view=netframework-4.8

При вызове AddDays(1) и AddSeconds(-1) прокрутка даты на один день вперед иназад на одну секунду так:

01-Jan-2000 12:34:56
01-Jan-2000 00:00:00 //.Date
02-Jan-2000 00:00:00 //.AddDays(1)
01-Jan-2000 23:59:59 //.AddSeconds(-1)

Вот так меняется время для салиды ..

enter image description here

enter image description here

enter image description here

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