Vb.net DateAdd函数用于添加月份
我使用此代码添加了个月Vb.net DateAdd函数用于添加月份,vb.net,visual-studio,Vb.net,Visual Studio,我使用此代码添加了个月 dtExpiry = DateAdd(DateInterval.Month, intDuration, dtStartDate) 我也试过这个密码 dtExpiry = DateAdd("m", bytDuration, dtMemStartDate) 但每一次都只是增加了几天而不是几个月。日期格式必须为dd/mm/yyyy。我已经将我的电脑日期格式更改为dd/mm/yyyy,但它仍然在增加天数而不是月份 顺便说一句,我正在从主调用程序接收持续时间和开始日期,该程序从
dtExpiry = DateAdd(DateInterval.Month, intDuration, dtStartDate)
我也试过这个密码
dtExpiry = DateAdd("m", bytDuration, dtMemStartDate)
但每一次都只是增加了几天而不是几个月。日期格式必须为dd/mm/yyyy。我已经将我的电脑日期格式更改为dd/mm/yyyy,但它仍然在增加天数而不是月份
顺便说一句,我正在从主调用程序接收持续时间和开始日期,该程序从CSV格式的数据文件中提取这些值。您的代码看起来正常,但您可能有不正确的数据类型 试试这个,看看是否有效:
dtExpiry = DateAdd(DateInterval.Month, intDuration, CDate(dtStartDate))
如果有效,则检查dtStartDate
的数据类型
如果切换,所有这些都可以避免,因为如果dtStartDate
不是类型DateTime
请注意,您还应该能够做到这一点:
dtexpiry = dtStartDate.AddMonths(intDuration)
如果
dtStartDate
不是DateTime
,则即使在选项Strict Off的情况下,该选项也无法编译,因此可能是一个更安全的选项。您的代码看起来正常,但可能有不正确的数据类型
试试这个,看看是否有效:
dtExpiry = DateAdd(DateInterval.Month, intDuration, CDate(dtStartDate))
如果有效,则检查dtStartDate
的数据类型
如果切换,所有这些都可以避免,因为如果dtStartDate
不是类型DateTime
请注意,您还应该能够做到这一点:
dtexpiry = dtStartDate.AddMonths(intDuration)
如果
dtStartDate
不是DateTime
,则即使使用选项Strict Off,该选项也无法编译,因此可能是更安全的选项。使用DateTime.tryparse
将字符串转换为日期,然后按以下方式使用?
您还可以指定转换,并明确告诉它字符串中的位置(m/d/y)
即:
Dim mydate As New Date
mydate = DateTime.ParseExact(datestring, "dd/MM/yyyy", Nothing, DateTimeStyles.NoCurrentDateDefault)
Dim secondDate As New Date
secondDate = mydate.AddMonths(6)
还是我遗漏了您的问题?使用
datetime.tryparse
将字符串转换为日期,然后按如下方式使用?
您还可以指定转换,并明确告诉它字符串中的位置(m/d/y)
即:
Dim mydate As New Date
mydate = DateTime.ParseExact(datestring, "dd/MM/yyyy", Nothing, DateTimeStyles.NoCurrentDateDefault)
Dim secondDate As New Date
secondDate = mydate.AddMonths(6)
还是我遗漏了您的问题?是否可以共享dtStartDate的值以及dtExpiry的结果?因此,开始日期为1990年2月15日,然后假设我们必须添加6个月。因此,有效期应为1990年8月15日。如果我使用您的开始日期和时间间隔,这两行代码对我来说都很好。你能加上准确的输入和输出吗?另外,它是VB.NET而不是VBA.NET。它是VB.NET,我添加了我的问题以使它更清楚。“我正在从主调用程序接收持续时间和开始日期,该程序从CSV格式的数据文件中提取这些值。”是
dtStartDate
真的是日期时间还是字符串(从该CSV中提取)?请注意,DateTime值没有格式。格式仅在将该日期转换为字符串(或返回)时适用。是否可以共享dtStartDate的值以及dtExpiry中的结果?因此开始日期类似于1990年2月15日,然后假设我们必须将其添加6个月。因此,有效期应为1990年8月15日。如果我使用您的开始日期和时间间隔,这两行代码对我来说都很好。你能加上准确的输入和输出吗?另外,它是VB.NET而不是VBA.NET。它是VB.NET,我添加了我的问题以使它更清楚。“我正在从主调用程序接收持续时间和开始日期,该程序从CSV格式的数据文件中提取这些值。”是dtStartDate
真的是日期时间还是字符串(从该CSV中提取)?请注意,DateTime值没有格式。仅当您将该日期转换为字符串(或返回)时,格式才适用。