2011-07-11 74 views
1

我在我的項目中使用了下面的代碼。我想查找給定最近日期和現在的天數。VB.NET中Datediff()函數沒有得到預期的結果

Dim BorrowDate As Date 
Dim i As Integer 
BorrowDate = Date.Parse(txtBorrowDate.Text) 
i = DateDiff(DateInterval.Day, BorrowDate, DateTime.Now) 

例如,當借款日期是「01/Jul/2011」時,結果是7天,現在應該是10天。請幫助

+0

你確定日期正確解析嗎?如果您通過創建新的DateTime對象手動設置BorrowDate,會發生什麼情況?你有什麼試圖調試/解決這個問題? – mdm

+0

BorrowDate實際上是從數據庫檢索到文本框,而不是由用戶手動輸入。 –

+0

當您調試時,BorrowDate和DateTime.Now的值是什麼? – bechbd

回答

3

由於您使用的是.NET你可以試試這個

Dim BorrowDate As Date = Date.Parse(txtBorrowDate.Text) 

    Debug.WriteLine(BorrowDate.ToString) 
    Debug.WriteLine(DateTime.Now.ToString) 

    Dim ts As TimeSpan = DateTime.Now - BorrowDate 

    Dim numdays As Integer = CInt(ts.TotalDays) 

    Debug.WriteLine(numdays.ToString("n0")) 

編輯:初始化變量和顯示的日期。

+0

好的解決方案;然而,聲明變量而不立即初始化它們是一種糟糕的風格,沒有理由不這樣做(除了OP也沒有這樣做)。這也會縮短一半的代碼。 ;-) –

+0

傢伙,它仍然產生相同的結果 –

+0

bechbd問這已經,但什麼是BorrowDate和DateTime.Now的實際運行時值? – jwatts1980

相關問題