问题是,你将原来的价值作为起点。 您在<条码>上添加了几天,然后,你忽视了这一结果,在<条码>日期<>上添加了几个月,然后,你忽视了这一结果,在<条码>上添加了几年时间。 如果你将以往的结果实际用作起点,那么你将最终得出一个包含所有三个行动的最终结果。 这是:
dateresult = datenow.AddDays(CBbDay.Text)
dateresult = datenow.AddMonths(CBbMonth.Text)
dateresult = datenow.AddYears(CBbYear.Text)
应:
dateresult = datenow.AddDays(CBbDay.Text)
dateresult = dateresult.AddMonths(CBbMonth.Text)
dateresult = dateresult.AddYears(CBbYear.Text)
在单一法典行中这样做实际上会更有意义。
dateresult = datenow.AddDays(CBbDay.Text).AddMonths(CBbMonth.Text).AddYears(CBbYear.Text)
下面没有具体涉及这一问题,但我想提供法典,这样一句话就没有真正削减。 你们确实需要停止如此快的游戏,并失去数据类型。 定购日期和(或)时间为<代码>Strings。 该网络有专门的数据类型,其原因如下: 我希望你将数字转换为<代码>Strings,然后试图对数字进行算术,但可以做任何事情。
您应首先修改<条码>。 项目性质中的。 如果你所贴出的内容代表你的守则,那就会发现许多错误,因为如果需要,你将要求你使用适当的数据类型,并在需要时明确表示/改变数据类型。 你的法典应当这样考虑:
Dim dateResult As Date
dateResult = Date.Today.AddDays(CInt(CBbDay.Text))
dateResult = dateResult.AddMonths(CInt(CBbMonth.Text))
dateResult = dateResult.AddYears(CInt(CBbYear.Text))
Label17.Text = dateResult.ToShortDateString()
<代码>Date.Today将给你一个<>Date值,其中包含今天的日子和零时间。 这是起点。 无需使用<代码>Date.Now并删除时间序列,不需要变式,无需使用<代码>String。 The Strings
come from the ComboBoxes
are reflected to Integer
Value, which is what these methods required. 既然如此,你就依靠这个系统来为你们投放/转变。 这常常会奏效,但有时会打赢头,直到你坠毁,更糟糕的是,沉默地拯救坏数据。 <>Date数值仅转换为String
,当时你实际需要String
,即显示数据。
同样令人惊骇的是,你有一个名为Label17
的控制。 拥有17个<条码>的劳动力:条码>,不作任何区别。 至少有您的<代码>ComboBoxes有实际意义的名称,即使它们重新思考。 核查应有描述名称。 你们为什么在回到法典的时候,你在一段时间前写了字,却不知道它做什么。
我还要指出,你实际上不需要区分你变量的宣言和初步化:
Dim dateResult = Date.Today.AddDays(CInt(CBbDay.Text))
dateResult = dateResult.AddMonths(CInt(CBbMonth.Text))
dateResult = dateResult.AddYears(CInt(CBbYear.Text))
Label17.Text = dateResult.ToShortDateString()
如果您有<条码>,可使用 在“上,如果是缺席,可推断出一个变量与最初的表述相同,那么dateResult
将推定为“ate。