解决方案 »

  1.   


              DateTime dt1=Convert.ToDateTime(textBox1.Text);
                DateTime dt2=Convert.ToDateTime(textBox2.Text);
                TimeSpan ts = dt2 - dt1;
                int d = ts.Days;
      

  2.   

    lable13.Tetx=ExecDateDiff(DateTime.Parse(shijian.Text), DateTime.Parse(tuifang.Text));
    //返回22.85 天  //    return ts3.TotalDays.ToString(); 改成    return ts3.Days.ToString(); 结果是22
    [code=csharp]/// <summary>
            /// 程序执行时间测试
            /// </summary>
            /// <param name="dateBegin">开始时间</param>
            /// <param name="dateEnd">结束时间</param>
            /// <returns>返回(天)单位</returns>
            public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)
            {
                TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);
                TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);
                TimeSpan ts3 = ts1.Subtract(ts2).Duration();
                //你想转的格式
                return ts3.TotalDays.ToString();
            }[/code]
      

  3.   


     int days = (int)(DateTime.Now - Convert.ToDateTime(shijian.Text)).TotalDays;取整了,不管过不过12点都算是一天了。
      

  4.   

    你这个问题问的太水了
    一般旅馆算钱都是中午12点为基准线,所以算法都要跟着调整的所以入住时间要以这个时间点为调整,退房时间也是要以这个时间点内调整const byte SplitHour = 12;//分割时间点
            public int GetDays()
            {
                DateTime dtIn = new DateTime(2014, 12, 1, 0, 0, 0);
                DateTime dtLeave = new DateTime(2014, 12, 13, 20, 0, 0);
                Func<DateTime, DateTime> func = (dt) =>
                {
                    if (dt.Date.AddHours(SplitHour) > dt)
                    {
                        dt = dt.Date.AddDays(-1);//小于分割时间的话,把时间往前延一天
                    }
                    return dt.Date;
                };//修正日期
                dtIn = func(dtIn);
                dtLeave = func(dtLeave);
                int days = (dtLeave - dtIn).Days;
                if (days == 0)
                {
                    days = 1;
                }
                return days;
            }
      

  5.   

    我想复杂了……
    直接两个时间相减,然后向上取整就行了
    int days = Math.Ceiling((dt2-dt1).TotalDays)
      

  6.   


     表示初学者 看的还是有点不太懂点击进去详细方法介绍,不是有详细的demo么? System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
    System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
    System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0); // diff1 gets 185 days, 14 hours, and 47 minutes.
    System.TimeSpan diff1 = date2.Subtract(date1); // date4 gets 4/9/1996 5:55:00 PM.
    System.DateTime date4 = date3.Subtract(diff1); // diff2 gets 55 days 4 hours and 20 minutes.
    System.TimeSpan diff2 = date2 - date3; // date5 gets 4/9/1996 5:55:00 PM.
    System.DateTime date5 = date1 - diff2;
      

  7.   

    //来个例子说明
    DateTime d = DateTime.Now;
    DateTime d2 = DateTime.Now;
    int days = (d2 - d).Days;