DateTimePicker的.Value和.Text之间的区别 - VB.NET

时间:2013-04-16 11:56:58

标签: vb.net datetimepicker

我创建了一小块软件,用于根据用户的生日计算一些信息。其中一个是活着的天数。基本上,我在VB.NET中使用DateDiff函数来实现这一点,但是有一个问题,我还没有想到它。

我使用.Value将DateTimePicker的值赋给变量,并使用DateDiff,如下所示:

DateDiff(DateInterval.Day, dtDOB, Today)

问题是当我在当前日期(昨天)之前选择一个日期时,给出的结果是0,而应该是1。

当我将.Value更改为.Text并将值存储到同一个变量时。给出的结果是1.这是我的预期,但我不知道.Value属性有什么问题。 当我进行研究时,我访问过的大多数网站建议使用.Value将值从DateTimePicker传输到变量,但不知何故它似乎不准确。

有人可以告诉我他们两人之间的区别吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

DatePicker.Value会返回Date个对象,而DatePicker.Text会返回该日期的String表示。

在检查Today返回的值和DatePicker.Value的输出后,我到达.Value时返回一个Date对象(默认情况下,沿着日期的当前时间,其中Today仅返回当前日期。当插入DateDiff()时,该方法将假设Today上的时间是凌晨12:00,并且通过比较时间,它可能会少于一天(由VB解释为完整的24小时)在两个日期之间),导致0天。如果您不打算计算小时和分钟,请使用DateDiff(DateInterval.Day, dtDOB.Date, Today)