2008-11-06 4 views
2

사용자가 첫 번째 명령문과 마지막 명령문의 날짜를 선택하는 응용 프로그램이 있습니다. 예 : 첫 번째 명령문 = 1/1/08, 마지막 명령문 = 12/1/08은 12 개의 명령문과 동일해야합니다. 다음 코드를 사용하는 경우월 계산

그러나, 결과는 11 :

numPayments = DateDiff(DateInterval.Month, CDate(.FeeStartDate), CDate(.FeeEndDate)) 

이를 계산하는 또 다른 방법이 있나요, 아니면 내가 결과에 1을 추가로 붙어해야합니까?

답변

2

예, 당신은 항상 당신이 종료 날짜에 하나를 추가하거나이 효과를 얻기 위해 시작 일로부터 1을 뺄 수있을 수 있지만 하나를 추가해야 할 것이다. 시작일과 종료일이 같은 경우를 생각해보십시오. 그것들의 차이는 0이나 하나의 성명을 나타 내기 위해 1 문장 만 남기고 싶습니다.

5

글을 쓸 때마다 1을 더하십시오. ;)

2008 년 1 월 1 일부터 2008 년 12 월 1 일까지의 차이는 11 개월입니다. 그것을 바꾸지 마라. ;)

2

음, 1 월 1 일과 12 월 1 일 사이의 달 수는 11입니다. 찾고 싶은 것은 달의 차이 +1입니다. 그냥 하나 추가해주세요 :)

2

또한, 사용중인 DateDiff 함수는 VB6 보류입니다. 더 나은이처럼 표현 :

numPayments = (Date.Parse(.FeeEndDate) - Date.Parse(.FeeStartDate)).TotalMonths + 1 
0

시도해 볼 수 있습니다. 희망이 아주 도움이됩니다.

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. 
+0

http://stackoverflow.com/faq#promotion – spinningarrow