我要得到两个DateTime之差,变为整数.但是总是报错:
   string p_date = "1928-12-03 00:00:00.000";   int p_num = (int)(System.DateTime.Now - (System.DateTime.Parse(p_date)));

解决方案 »

  1.   

    不能这样直接减,首先要将DateTime转换成TimeSpan类型,然后再进行加减,最后再转换成DateTime类型就可以了
      

  2.   

    DateTime p_date = Convert.ToDateTime("1928-12-03 00:00:00");
    TimeSpan ts1 = DateTime.Now - p_date;ts1.Days;//整天数
    ts1.Hours;//整小时数
    ts1.Minutes;//整分钟数
    //....
    ts1.TotalDays;//全部天数
    //...
      

  3.   

    string sDate = "2006-05-24 21:00:05";
            
            TimeSpan ds = DateTime.Now - Convert.ToDateTime(sDate);
            
            string sdate = ds.ToString().Replace("-","");
            sdate = sdate.Remove(sdate.LastIndexOf('.'), 8);
            int iLength = sdate.Split('.').Length;
            string day = string.Empty,time = string.Empty;
            if (iLength > 1)
            {
                day = sdate.Substring(0, sdate.IndexOf('.')) + "天";
            }
            time = sdate.Substring(sdate.IndexOf('.') + 1, 8);
            time = Convert.ToDateTime(time).ToString("HH时mm分ss秒");        if (day != string.Empty && ds.ToString().StartsWith("-"))
            {
                day = "-" + day;
            }
            else if(ds.ToString().StartsWith("-"))
            {
                time = "-" + time;
            }
            Response.Write(day + time);