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

问题描述 投票:0回答:1

我有两个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窗体中,用户无法选择小时,只选择日期。我怎样才能做到这一点?这似乎很简单,但我无法在任何地方找到解决方案。

c# datetime datetimepicker windows-forms-designer
1个回答
1
投票

使用户看到/只选择一个日期:

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时间的变化。

enter image description here

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.