2012-06-20 32 views
2

在我的網站我存儲用戶訪問DateTime信息在SQL服務器使用日期數據類型。 因爲我在C#中使用了UtcNow如何在C#中減去2 UTC日期

visit_date = System.DateTime.UtcNow 

現在我想獲得的時間差,如果同一用戶在我的網站訪問,所以我怎麼能減去2 UTC日期。我現在用以下的方式來獲得在小時差異,但它給出錯誤的時間差。

TimeSpan timeDiff = System.DateTime.UtcNow.Subtract((DateTime)_Last_View.visit_date); 
+2

您的代碼沒有問題,但在visit_date中的值不是您所期望的(假設使用timeDiff.TotalHours)。 –

回答

5

嘗試使用上產生的時間跨度的TotalHours像得到營業時間:

TimeSpan interval = date2.Subtract(date1); 
double Hours = interval.TotalHours; 
+0

+1。這是最有可能的原因 - TimeSpan.Hours與TimeSpan.TotalHours(假設數據是正確的)。 –

+0

謝謝......我使用Hours財產而不是TotalHours。 – Shailesh

2
DateTime dt1 = DateTime.UtcNow; 
DateTime dt2 = (DateTime)_Last_View; 

TimeSpan ts = dt1.Subtract(dt2); 

int seconds = ts.Seconds; 
int minutes = ts.Minutes; 
double hours = ts.TotalHours; 
int days = ts.Days; 
int days = ts.TotalDays; 
int years = (int) (ts.Days/365.25); // leap years included 

入住這Calculating Date Difference in C#

2

嘗試使用Ticks

double timeDiffTicks = System.DateTime.UtcNow.Ticks - visit_date.Ticks; 
double hours = (((timeDiffTicks/10000)/1000)/60)/60; 
1

謝謝。

它的工作原理

TimeSpan timeDiff = System.DateTime.UtcNow.Subtract((DateTime)_Last_View.visit_date); 

      if (timeDiff.TotalHours > 24) 
      { 
      } 

我用timeDiff.Hours代替timeDiff.TotalHours