2012-01-01 190 views
0

我正在編程小頁面,想顯示認證券的到期時間。我的意思不是結束,而是剩下的時間。當前代碼如下:展示券剩餘時間

DateTime cas = (DateTime)ticket.Expiration.Date; 
    DateTime cas1 = DateTime.Now; 
    DateTime cas2 = cas1.Subtract(cas); 

但是,VS表示「不能隱式地將system.timespan轉換爲系統日期時間」。 請幫忙。非常感謝。

回答

1

Substract方法返回時間範圍,而不是日期時間。試試這個:

Timespan cas2 = cas.Subtract(cas1); 

[編輯]下面的評論,這應該工作的代碼很簡單:

TimeSpan remaining = ticket.Expiration.Substract(DateTime.Now); 

你沒有到期的情況下,因爲它是一個DateTime property

+0

它的工作原理,但時間增加(和過期時間設置爲在web.config中1分鐘) – polohy 2012-01-01 21:05:51

+0

的時間沒有增加,但是負。反向減法:'cas.Substract(cas1)'。我以這種方式更新我的答案 – 2012-01-01 21:07:25

+0

問題在別處... – polohy 2012-01-01 21:12:01

0

您可以使用運算符重載。通過從另一箇中減去一個日期時間返回的類型是時間跨度:

TimeSpan remainingTime = ticket.Expiration - DateTime.Now;