日期:2014-05-17  浏览次数:20589 次

string类型如何比较时间大小
public string endtime; 


endtime = re["T_Title_en"].ToString(); //结束时间
DateTime dadt = DateTime.Parse(endtime);
endtime = dadt.ToString("yyyy-MM-dd HH:mm:ss");


var newdate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //当前时间
  if(endtime<newdate) //当结束时间小于当前时间时执行以下代码...
  {
  qgou.Visible = false;
  }



报错信息如下

编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误消息: CS0019: 运算符“<”无法应用于“string”和“string”类型的操作数

源错误:

 

行 37: 
行 38: var newdate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //当前时间
行 39: if (endtime < newdate)
行 40: {
行 41: qgou.Visible = false;
 



求正确答案......



------解决方案--------------------
转成DataTime后比较
------解决方案--------------------
转换成DateTime后,用DateTime.Compare 方法或者DateTime.CompareTo 方法进行比较
参考MSDNhttp://msdn.microsoft.com/zh-cn/library/system.datetime.compare%28VS.80%29.aspx
------解决方案--------------------
数据类型不一样,转换一致之后,方可比较。
------解决方案--------------------
如果在数据库中可以直接比较字符串时间的大小
如果在程序中可以用3L的方法
如果要计算两个字符时间的时间差,可以先转换为DateTime再计算TimeSpan。
------解决方案--------------------
转换成DateTime类型的值以后再做比较,两个string类型的值是无法比较的.
------解决方案--------------------
C# code


  DateTime endtime= DateTime.Parse(re["T_Title_en"].ToString());//结束时间,re["T_Title_en"].ToString()要进行非空之类的判断,不然会报异常

  if(endtime<DateTime.Now) //当结束时间小于当前时间时执行以下代码...
  {
    qgou.Visible = false;
  }