我创建了一小块软件,用于根据用户的生日计算一些信息。其中一个是活着的天数。基本上,我在VB.NET中使用DateDiff
函数来实现这一点,但是有一个问题,我还没有想到它。
我使用.Value将DateTimePicker的值赋给变量,并使用DateDiff,如下所示:
DateDiff(DateInterval.Day, dtDOB, Today)
问题是当我在当前日期(昨天)之前选择一个日期时,给出的结果是0,而应该是1。
当我将.Value
更改为.Text
并将值存储到同一个变量时。给出的结果是1.这是我的预期,但我不知道.Value属性有什么问题。
当我进行研究时,我访问过的大多数网站建议使用.Value
将值从DateTimePicker传输到变量,但不知何故它似乎不准确。
有人可以告诉我他们两人之间的区别吗?
非常感谢
答案 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)
。