DateTime t1 = Convert.ToDateTime("2011-09-07 15:11:20");
DateTime t2 = Convert.ToDateTime("2011-09-08 10:11:20");TimeSpan tt = t2.Subtract(t1);
int days = tt.Days;如果是这样获取的话~~取到的日期是0天,因为两个天数之间相差的时候间隔还不足一天如果是 int days = t2.Day - t1.Day; 这样的话,可以取到正确的日期差一天,但是这种方法用在跨月的时候,就还得判断月份再判断日期了,请问高手们,有没有什么办法可以解决这个问题的呢?

解决方案 »

  1.   

    先转换成YYYY-MM-dd 不精确到小时的,再TimeSpan tt = t2-t1
      

  2.   

            DateTime dt1 = Convert.ToDateTime("2007-3-24 11:29:12");
            DateTime dt2 = Convert.ToDateTime("2007-1-28 10:40:12");
            TimeSpan ts = dt1 - dt2;
            string timespan = "相差:"
            + ts.Days.ToString() + "天"
            Label1.Text = timespan;
      

  3.   

    TimeSpan 又不单单只有一个属性
                    DateTime t1 = Convert.ToDateTime("2011-08-07 15:11:20");
                    DateTime t2 = Convert.ToDateTime("2011-09-08 10:11:20");                TimeSpan tt = t2.Subtract(t1);
                    Response.Write(Convert.ToInt64(tt.TotalDays));
      

  4.   

    DateTime t1 = Convert.ToDateTime("2011-09-07 15:11:20");
    DateTime t2 = Convert.ToDateTime("2011-09-08 10:11:20");            DateTime ada = new DateTime(t1.Year, t1.Month, t1.Day);
                DateTime bdb = new DateTime(t2.Year, t2.Month, t2.Day);            Console.WriteLine((ada - bdb).Days);
      

  5.   

            DateTime t1 = Convert.ToDateTime("2011-09-07 15:11:20");
            DateTime t2 = Convert.ToDateTime("2011-09-08 10:11:20");
            TimeSpan sp = t1 - t2;
            Response.Write(Math.Abs(sp.TotalHours)/24+"天");
      

  6.   


            private static int DayCount(DateTime starDate, DateTime endDate)
            {
                starDate = DateTime.Parse(starDate.ToString("yyyy-MM-dd"));
                endDate = DateTime.Parse(endDate.ToString("yyyy-MM-dd"));            return (endDate - starDate).Days;
            }
      

  7.   


    你这都用的是声明了是要的天数 int days = tt.Days;没有小时了,相差不到一天的话肯定是0;
    要么你就用8楼的方法,只不过是带有小数的天数。
    要么就判断,当天数为0时,直接取相差小时数就好了。        int h = 0 ;
            if (days<=0)
            {
                //获取小时数
                h = tt.Hours; 
            }