如何计算两个日期之间的差异

时间:2014-07-03 08:20:54

标签: vb.net-2010

我有这段代码:

Private Sub CalculateBUT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalculateBUT.Click
    If SelectTheDateComboBox.Text = "Calculate the difference between two dates" Then
        FromYearTextBox.Text = FromDateTimePicker.Value.Year
        FromMonthTextBox.Text = FromDateTimePicker.Value.Month
        FromDayTextBox.Text = FromDateTimePicker.Value.Day
        ToYearTextBox.Text = ToDateTimePicker.Value.Year
        ToMonthTextBox.Text = ToDateTimePicker.Value.Month
        ToDayTextBox.Text = ToDateTimePicker.Value.Day
        Dim DaysMyString, MonthsMyString, YearsMyString As String
        Dim DaysDifferance, MonthsDifferance, YearsDifferance As Long
        DaysMyString = FromDateTimePicker.Value.Day
        MonthsMyString = FromDateTimePicker.Value.Month
        YearsMyString = FromDateTimePicker.Value.Year
        DaysDifferance = DateDiff(DateInterval.Day, ToDateTimePicker.Value.Day, CDate(DaysMyString))
        MonthsDifferance = DateDiff(DateInterval.Month, ToDateTimePicker.Value.Month, CDate(MonthsMyString))
        YearsDifferance = DateDiff(DateInterval.Year, ToDateTimePicker.Value.Year, CDate(YearsMyString))
        DifferenceTextBox2.Text = DaysDifferance & "Days, " & MonthsDifferance & "Months, " & YearsDifferance & "Years"
End Sub

我的问题如下图: enter image description here

所以,我需要一些帮助。

1 个答案:

答案 0 :(得分:1)

您希望DateDiff为您提供两个日期之间的天数,并且您希望DaysDifference保存结果,这很好:

DaysDifferance = DateDiff(DateInterval.Day, x, y)

但为了工作,x和y需要成为日期。

当您使用ToDateTimePicker.Value(这是一个日期)并在结尾添加.Day时,它不再是日期。

所以你想要:

 DaysDifferance = DateDiff(DateInterval.Day, ToDateTimePicker.Value, CDate(DaysMyString))