如何确定标签日期是否为过去3个月

时间:2017-08-03 13:13:12

标签: c# asp.net

我有一个网格视图,其日期字段是Label。 我想知道该日期是从当前日期开始的3个月。 我正在DataBound事件上执行此操作。 这是我的片段:

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
        }
    }
}

我被困在第二个If中应该放的东西。

2 个答案:

答案 0 :(得分:3)

您可以使用DateTime将标签的文字投放到DateTime.TryParse变量,然后将其与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

答案 1 :(得分: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是您知道日期已呈现的格式。