2013-07-02 41 views
0

我試圖比較一天中兩次之間的差異。我以UTC格式獲取時間。我是否必須將DateTime轉換爲整數才能獲得差異,如果是的話,該怎麼辦?如何將DateTime轉換爲Integer並檢查差異?

這是我的代碼

Dim ct As DateTime = DateTime.UtcNow 
     Dim int_ct As Integer = Convert.ToInt32(ct) 
     MsgBox(ct + " | " + int_ct) 
     If (System.IO.File.Exists(System.IO.Path.GetTempPath.ToString + "\tempfile.data")) Then 
      Dim time As DateTime = System.IO.File.ReadAllText(System.IO.Path.GetTempPath.ToString + "\tempfile.data") 
      Dim int_time As Integer = Convert.ToInt32(time) 
      If ((int_ct - unlockedtime) < int_time) Then 'unlockedtime is Int variable 
       Return False 
      Else 
       Return True 
      End If 
     End If 

回答

2

你不需要做任何時區轉換,只要確保這兩個日期/時間值是在同一個時區拍照時,他們(雖然我認爲它可能是明智的使用,以UtcNow的情況下,系統時區變化之間的兩次測量

你不需要值轉換爲Int32拿到區別,只是使用DateTime.Subtract方法:

Dim old As DateTime = GetOldDateTime() 
Dim now As DateTime = DateTime.UtcNow 
Dim diff As TimeSpan = now.Subtract(old) 

If diff.TotalSeconds > someSecondsValue Then 
    DoSomething() 
End If 
+0

我有「someSecondsValue」作爲整數變量。有沒有辦法將該整數值轉換爲TimeSpan來比較它,因爲我得到一個錯誤,我無法比較這兩個值。 –

+0

你得到的錯誤是什麼? – Dai

+0

@KrešimirČulina..不需要將某些秒值轉換爲Timespan .. – matzone

0

正如戴秉國說,你可能需要比較差,但如果你只是想日期的差異,你可以使用以下命令:

DateDiff(DateInterval.Minute, Date1, date2) 

這以整數形式返回差異,您可以將所需的任何日期間隔設置爲firt參數。