gridview关于日期比较的问题
我用绑定数据源的方法填充了一个GridView,在RowDataBound中想如下显示数据行,即通过比较影片的放映日期(存储在e.Row.Cells[8].Text中)跟今天的日期比较,把将过期和已过期的影片用红色显示出来:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//过期和将过期(一星期后到期)影片以红色显示
DateTime enddate = DateTime.Now.Date.AddDays(7);
string end = enddate.ToShortDateString();
if (end.CompareTo(e.Row.Cells[8].Text) > 0)
e.Row.BackColor = Color.Red;
}
}
可是遇到了一个问题:比如影片的放映日期显示若为今年10、11、12月份的(如2007-10-12 0:00:00),居然也显示红色,不知道是我哪里的代码比较出了问题了,请高手指点谢谢!
[解决办法]
不用使用字符串的比较,还是用时间类型比较
CompareTo比较是比较ASCII码,现在是4月,比较2007-4和2007-10当然是2007-4大了