string dt = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");                  //这是一个时间
string dt1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");            //这是另个时间
            TimeSpan ts = DateTime.Parse(dt) - DateTime.Parse(dt1);
            ts.Days                                                                                                  //这是相差的天数            ts.Hours                                                                                                //这是相差的小时数,           ts.Minutes                                                                                              //这是相差的分数

解决方案 »

  1.   

    DateTime dt1;
    DateTime dt2;
    int days=    (dt2.Date-dt1.Date).Days;
      

  2.   

    DateTime d1 = DateTime.Parse("2014-12-22");
    DateTime d2 = DateTime.Parse("2014-12-23");
    int d = (d2 - d1).Days;//天
    int h = (d2 - d1).Hours;//小时
    int m = (d2 - d1).Minutes;//分
      

  3.   

    不是.totaldays吗???如果不要负数的 要用一下 abs
      

  4.   

    DateTime d1 = DateTime.Parse("2014-12-22");
    DateTime d2 = DateTime.Parse("2014-12-23");
    int d = (d2 - d1).Days;//天
    int h = (d2 - d1).Hours;//小时
    int m = (d2 - d1).Minutes;//分
      

  5.   

    应该用TotalDays.   因为有可能超过一个月吧。
      

  6.   

    TimeSpan ts = Date1 - Date2; 
    double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5 
    int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1 
      

  7.   

    文本=>时间用DateTime.TryParse(string); // parse可能抛异常影响性能。
    时间相减有两种
    1. 只算天数:(dt2 - dt1).Days
    2. 算上时分秒等:(dt2 - dt1).TotalDays
      

  8.   

    c#中两个datetime相减得到timespan对象,这个对象下有年,月,日,等等属性,自己调用就可以得到,要是只想得到天数,关键看你是怎么个算法,是不是不到一天的直接舍弃还是怎么弄,具体的实现算法只能自己写了,.net framework是不可能实现这个差异化很大的需求的,