0

我使用此代码添加月份

dtExpiry = DateAdd(DateInterval.Month, intDuration, dtStartDate)

我也试过这段代码,

dtExpiry = DateAdd("m", bytDuration, dtMemStartDate)

但每次它只是增加天而不是几个月。日期格式必须是 dd/mm/yyyy。我已将我的 PC 日期格式更改为 dd/mm/yyyy,但它仍然不断添加天而不是月份。

顺便说一句,我从主调用程序接收持续时间和 startDate,该程序从 CSV 格式的数据文件中提取这些值。

4

2 回答 2

3

您的代码看起来不错,但您的数据类型可能不正确。

试试这个,看看这是否有效:

dtExpiry = DateAdd(DateInterval.Month, intDuration, CDate(dtStartDate))

如果可行,请检查dtStartDate.

如果您切换Option Strict On ,所有这些都可以避免,因为如果dtStartDate不是类型,代码将无法编译DateTime

请注意,您还应该能够执行此操作:

dtexpiry = dtStartDate.AddMonths(intDuration)

dtStartDate如果不是这样,即使使用 Option Strict Off 也将无法编译,DateTime因此可能是更安全的选择。

于 2013-11-13T11:18:37.100 回答
2

用于datetime.tryparse将您的字符串转换为日期,然后使用如下?您还可以指定转换并明确告诉它字符串中的位置 (m/d/y)

IE:

Dim mydate As New Date

mydate = DateTime.ParseExact(datestring, "dd/MM/yyyy", Nothing, DateTimeStyles.NoCurrentDateDefault)  

Dim secondDate As New Date
secondDate = mydate.AddMonths(6)

还是我错过了你的问题?

于 2013-11-13T11:57:28.137 回答