我有两个DateTimePickers,一个名为FechaEntrada
,另一个名为FechaSalida
。
我想在每次用户选择日期时将FechaEntrada.Value
设置为"whatever_date_the_user_picked 00:00:00"
并将FechaSalida.Value
设置为"whatever_date_the_user_picked 23:59:59"
。
我需要比较来自dtpickers的两个值,这样我就可以从DataBase填充DatagridView,并在这两个日期之间选择值。
在我的Windows窗体中,用户无法选择小时,只选择日期。我怎样才能做到这一点?这似乎很简单,但我无法在任何地方找到解决方案。
使用户看到/只选择一个日期:
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)
这就是salida时间的变化。