English 中文(简体)
AddDay 和Add.Month 的职能是t work,但只是视觉基础补充年
原标题:AddDay and AddMonth function doesn t work, only AddYear on Visual Basic
  • 时间:2024-01-21 02:31:25
  •  标签:
  • vb.net

So, I am making a program that will give new date based on how much time span given by user (like Date calculation in built-in calculator app in Windows 10/11). The problem is, I can only manage to add years, while the day and month stay the same.

我在此试图这样做:

Dim dateresult As String
Dim datenow As Date = Now.ToShortDateString
dateresult = datenow.AddDays(CBbDay.Text)
dateresult = datenow.AddMonths(CBbMonth.Text)
dateresult = datenow.AddYears(CBbYear.Text)
Label17.Text = dateresult

例如,如果今天的日期是2024年1月1日,CBbDay、CBbMonth和CBb年的价值是10年,那么我从该守则(<>dateresult)中得到的东西是2034年1月1日,应当到2034年11月11日。

我的法典中是否有任何错误,或者我使用了错误的职能?

谢谢。

问题回答

问题是,你将原来的价值作为起点。 您在<条码>上添加了几天,然后,你忽视了这一结果,在<条码>日期<>上添加了几个月,然后,你忽视了这一结果,在<条码>上添加了几年时间。 如果你将以往的结果实际用作起点,那么你将最终得出一个包含所有三个行动的最终结果。 这是:

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。





相关问题
Is Shared ReadOnly lazyloaded?

I was wondering when I write Shared ReadOnly Variable As DataType = New DataType() Or alternatively Shared ReadOnly Variable As New DataType() Is it lazy loaded or as the instance initializes? ...

Entertaining a baby with VB.NET

I would like to write a little application in VB.NET that will detect a baby s cry. How would I get started with such an application?

Choose Enter Rather than Pressing Ok button

I have many fields in the page and the last field is a dropdown with list of values. When I select an item in a dropdown and press Enter, it doesn t do the "Ok". Instead I have to manually click on Ok ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

Set Select command in code

On button Click I want to Set the Select command of a Gridview. I do this and then databind the grid but it doesn t work. What am i doing wrong? protected void bttnView_Click(object sender, ...

Hover tooltip on specific words in rich text box?

I m trying to create something like a tooltip suddenly hoovering over the mouse pointer when specific words in the richt text box is hovered over. How can this be done?

热门标签