2017-02-05 67 views
0

我有一個gridview,我想強調其中有差異的天數> 10比較從數據庫中兩個日期之一,datetime.now

我有什麼現在

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      DateTime dateNow = DateTime.Now; 
      string dateCreated = e.Row.Cells[5].Text; 

      DateTime dc = Convert.ToDateTime(dateCreated); 
      TimeSpan difference = dateNow - dc; 

      if (difference.TotalDays > 0) 
      { 
       e.Row.BackColor = System.Drawing.Color.Cyan; // This will make row back color red 
      } 
     } 
    } 

的日期格式保存到我的數據庫的那個是dd-MM-YYYY,它被保存爲nvarchar。

+0

你應該說明你有這個代碼做什麼的問題。現在,沒有任何問題 – Steve

+0

對不起,但我的問題是..它沒有突出顯示行 –

回答

0

使用此:

int minutes = (int)DateTime.Now.Subtract(dc).TotalMinutes; 

或天

int days = (int)DateTime.Now.Subtract(dc).TotalDays; 

或者秒,毫秒,周,....

爲了讓您的字符串日期做到這一點:

string dateCreated = "01-01-2017"; 
string[] dcArray = dateCreated.Split('-'); 
DateTime dc = new DateTime(int.Parse(dcArray[2]), int.Parse(dcArray[1]), int.Parse(dcArray[0])); 
+0

你如何建議我將dateCreated字符串轉換爲? –

+0

這是真的你做了什麼。 'DateTime dc = Convert.ToDateTime(dateCreated);'我必須將我的答案dateCreated更改爲dc。 –

+0

我編輯了我的答案,它將無效地工作你想要的。 –

0

你應該分析日期時間這樣的:

DateTime dc = DateTime.ParseExact(dateCreated, "dd-MM-yyyy", CultureInfo.InvariantCulture); 
+0

我遇到了這個錯誤「在mscorlib.dll中發生了類型'System.FormatException'的異常,但沒有在用戶代碼中處理「 –

0

維克多Leontyev是正確與解析。但你也必須調整你的邏輯:

if (difference.TotalDays > 0) 

if (Math.Abs(difference.TotalDays) > 10)