DateAdd函数添加月份

时间:2013-11-13 08:36:34

标签: vb.net visual-studio

我用这段代码添加了几个月

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

我也试过这段代码,

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

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

BTW我正在接收来自主调用程序的持续时间和startDate,它从CSV格式的数据文件中提取这些值。

2 个答案:

答案 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)

或者我错过了你的问题?