2017-08-03 99 views
0

我有一個網格視圖,其中的日期字段是標籤。 我想知道這個日期是否是從當前日期起的過去3個月。 我在DataBound事件中執行此操作。 這裏是我的代碼片段:如何確定標籤日期是否過去3個月

protected void gvcmi_DataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Label LastVisitLbl = (Label)e.Row.Cells[7].FindControl("lblStatusv"); 
     If (LastVisitLbl /*not sure what to put here*/) 
     { 
      //Do something 
     } 
    } 
} 

我堅持我應該放什麼東西在第二個如果。

+0

標籤的文字代表日期嗎?如果是,哪種格式? – Ben

回答

2

可以使用DateTime.TryParse投標籤的文本爲DateTime變量,然後把它比作DateTime.Now零下3月:

DateTime date; 
if (DateTime.TryParse(LastVisitLbl.Text, out date)) 
{ 
    if (date < DateTime.Now.AddMonths(-3)) 
    { 
      // Do Something 
    } 
} 
else 
    // Error - the label's format is not a correct DateTime 
+0

也許你應該用'DateTime.TryParse'來轉換日期。所以不會拋出異常。 – DogeAmazed

+1

'if(DateTime.TryParse(LastVisitLbl.Text,out date))':) – DogeAmazed

2

您可以使用DateTime.ParseExactDateTime.TryParseExact。由於要渲染這些標籤,你可以相信,日期是在正確的格式,所以你可以只使用ParseExact

protected void gvcmi_DataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      Label LastVisitLbl = (Label)e.Row.Cells[7].FindControl("lblStatusv"); 
      If (DateTime.ParseExact(LastVisitLbl.Text, "dd/MM/yyyy", Thread.CurrentThread.CurrentUICulture.DateTimeFormat) >= DateTime.Today.AddMonths(-3) 
      { 
       //Do Something 
      } 
     } 
} 

哪裏dd/MM/yyyy是你知道的日期被渲染的格式。

相關問題