1

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

我使用 .Value 将 DateTimePicker 的值分配给一个变量,并使用 DateDiff 如下:

DateDiff(DateInterval.Day, dtDOB, Today)

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

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

谁能告诉我他们两个的区别?

非常感谢

4

1 回答 1

0

ADatePicker.Value返回一个Date对象,其中 asDatePicker.Text返回String该日期的表示。

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

于 2014-03-15T13:29:53.230 回答