每次用户选择日期时,如何在 DateTimePicker 中设置默认小时数?

How can I set a default hour in the DateTimePicker every time the user selects a date?

我有两个 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。

在我的 windows 表单中,用户不能选择时间,只能选择日期。我怎样才能做到这一点?看起来很简单,但我找不到任何解决方案。

让用户 sees/chooses 只有一个日期:

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 returns 日期时间

调用 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)

salida 的时间就是这样变化的..