我有一个应用程序,用户选择第一条语句和最后一条语句的日期。例如,第一条语句= 1/1/08,最后一条语句= 12/1/08,应该等于12条语句。计算月份
但是,使用下面的代码时,结果是11:
numPayments = DateDiff(DateInterval.Month, CDate(.FeeStartDate), CDate(.FeeEndDate))
是否有另一种方法来计算这个,还是我必须用加1,结果被卡住?
我有一个应用程序,用户选择第一条语句和最后一条语句的日期。例如,第一条语句= 1/1/08,最后一条语句= 12/1/08,应该等于12条语句。计算月份
但是,使用下面的代码时,结果是11:
numPayments = DateDiff(DateInterval.Month, CDate(.FeeStartDate), CDate(.FeeEndDate))
是否有另一种方法来计算这个,还是我必须用加1,结果被卡住?
是的,你总是要增加一个,虽然您可以添加一个结束日期或减去开始日期一个也得到这种效果。考虑开始和结束日期相同的情况。他们的区别是0,但你仍然想要1个陈述来显示一个奇怪的情况。
添加1,正如你所写。 ;)
1/1/2008和12/1/2008之间的差异是11个月。没有改变。 ;)
那么,1月1日至12月1日之间的月数是11 ...您要查找的是月份+1的差异。所以只需添加一个:)
此外,您使用的DateDiff函数是一个VB6保留。更好地表达这样的:
numPayments = (Date.Parse(.FeeEndDate) - Date.Parse(.FeeStartDate)).TotalMonths + 1
你可以试试这个。希望这是非常有帮助的。
Dim myDate As Date
Dim dateNow As Date
Dim nextMonth As Date
myDate = Now
dateNow = Format(myDate, "MM/dd/yyyy")
nextMonth = DateAdd(DateInterval.Month, 5, dateNow) 'compute the next 5 months from date now. Let say, #12/6/2012# the result will be #5/6/2013#
MessageBox.Show(DateDiff(DateInterval.Month, dateNow, nextMonth) & "months==> " & nextMonth)
'This will count the number of months interval. The result will be 5 months=>> #5/6/2013 because we count december to may.
http://stackoverflow.com/faq#promotion – spinningarrow 2012-12-06 04:03:37