我有一个网格视图,其日期字段是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中应该放的东西。
答案 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.ParseExact或DateTime.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
是您知道日期已呈现的格式。