我用这段代码添加了几个月
dtExpiry = DateAdd(DateInterval.Month, intDuration, dtStartDate)
我也试过这段代码,
dtExpiry = DateAdd("m", bytDuration, dtMemStartDate)
但每次只是添加天而不是几个月。日期格式必须是dd / mm / yyyy。我已经将我的PC日期格式更改为dd / mm / yyyy但仍然不断添加Days而不是Months。
BTW我正在接收来自主调用程序的持续时间和startDate,它从CSV格式的数据文件中提取这些值。
答案 0 :(得分:3)
您的代码看起来不错,但您的数据类型可能不正确。
试试这个,看看是否有效:
dtExpiry = DateAdd(DateInterval.Month, intDuration, CDate(dtStartDate))
如果可行则检查dtStartDate
的数据类型。
如果您切换Option Strict On,则可以避免所有这些,因为如果dtStartDate
不是DateTime
类型的代码,代码将无法编译
请注意,您还应该能够这样做:
dtexpiry = dtStartDate.AddMonths(intDuration)
如果dtStartDate
不是DateTime
,即使选项严格关闭也无法编译,因此可能是更安全的选项。
答案 1 :(得分:2)
使用datetime.tryparse
将字符串转换为日期,然后按如下方式使用?
您还可以指定转换,并具体告诉它字符串中的位置(m / d / y)
I.e。:
Dim mydate As New Date
mydate = DateTime.ParseExact(datestring, "dd/MM/yyyy", Nothing, DateTimeStyles.NoCurrentDateDefault)
Dim secondDate As New Date
secondDate = mydate.AddMonths(6)
或者我错过了你的问题?