2010-04-09 61 views
2

我正在使用C#發送帶有加密鏈接的電子郵件。鏈接的加密部分包含一個時間戳,需要用來驗證鏈接是否超過48小時。我如何比較舊時間和當前時間,並確定舊時間是否超過48小時?C#檢查分貝的年齡項目

這是我現在有:

var hours = DateTime.Now.Ticks - data.DTM.Value.Ticks; //data.DTM = stored time stamp 

     if (hours.CompareTo(48) > 1) //if link is more than 48 hours old, deny access. 

      return View("LinkExpired"); 
     } 

比較蜱好像它是一個非常落後的方式來做到這一點,我知道hours.CompareTo將不得不進行調整,如果我堅持使用比較蜱。我怎樣才能得到已經過去的小時數值?

回答

4
(DateTime.Now - data.DTM.Value).TotalHours > 48 
+0

驚人。我應該知道這很簡單。謝謝Andrey。 – 2010-04-09 16:41:13

+0

順便說一句,這是有趣的構造。 DateTime覆蓋運算符 - 結果是TimeSpan類的對象。這些東西讓我愛上c#(並且討厭java) – Andrey 2010-04-09 16:47:45

1

DateTime.Now.Ticks不是小時......它們是蜱蟲......在您的計算機中非常小的間隔。

嘗試

if ((DateTime.Now - data.DTM).TotalHours > 48) //if link is more than 48 hours old, deny access. 

     return View("LinkExpired"); 
    }