2012-02-28 210 views
0

我试图找出两个日期之间的差异。两个日期中的第一个可以改变,当它改变时,原始日期之间的差异必须保留。这意味着我必须自动将第二个日期更改为与以前相同的天数,但是需要新的第一个日期。VB - 两个日期之间的差异

Public Sub New() 

    InitializeComponent() 

    currDate = txt_ProjStart.Text 

End Sub 

Private Sub txt_ProjStart_TextChanged..... 

If txt_ProjEnd.Text.Length > 0 Then 

    Dim newDate As Date 
    newDate = txt_ProjStart.Text 




    Dim endDate As Date 
    endDate = txt_ProjEnd.Text 


End If 

我有旧的date1(currDate)和新的date1值(newDate)的值。我需要弄清这些差异,然后在endDate中加入或减去这些日子。

任何帮助将不胜感激!谢谢!

+0

DateTime.Parse(txt_ProjectEnd.Text) - DateTime.Parse(txt_ProjectStart.Text) – kenny 2012-02-28 12:13:57

+2

您可以通过减去日期来获得TimeSpan - 然后将它们添加回第一个(更改的)日期以获得另一个日期相同的区别 - 我想你会得到*算法*自己工作;) – Carsten 2012-02-28 12:14:01

回答

0
Dim newDate, endDate, someOtherDate As Date 

If Date.TryParse(txt_ProjStart.Text, newDate) AndAlso _ 
    Date.TryParse(txt_ProjEnd.Text, endDate) Then 

    Dim diff As TimeSpan = endDate - newDate 
    Dim result As Date = someOtherDate + diff 
End If 

日期和时间跨度自动转换为对方。另外,使用安全日期转换是个好主意。如果日期无效,TryParse不会生成异常。相反,它会返回False