求计算    比如:开始日期是:2012-08-10 10:00  结束日期是:2012-08-10 13:10  那么它相隔 2小时
    
          开始日期是:2012-08-10 13:30  结束日期是:2012-08-11 09:10  那么它相隔 5小时
    上班时间是  08:00-12:00                 13:30-15:30
    目前只能算出总时间差,怎么得到两个日期之间的工作小时差。

解决方案 »

  1.   

    string dt = DateTime.Now.ToString("yyyy-MM-dd HH:00:00");
    DateTime dt1 = new DateTime(2012, 1, 1, 9, 0, 0, 0);
    TimeSpan ts = new TimeSpan(Convert.ToDateTime(dt).Ticks);
    TimeSpan ts1 = new TimeSpan(dt1.Ticks);
    decimal dec = Convert.ToDecimal(ts.TotalHours);
    decimal dec1 = Convert.ToDecimal(ts1.TotalHours);
    decimal decd = dec - dec1;
      

  2.   


              DateTime date1 = Convert.ToDateTime("2012-12-12 12:00:00");
                DateTime date2 = Convert.ToDateTime("2012-12-12 1:00:00");            TimeSpan ts = date1 - date2;
                int hour = ts.Hours;            DataTable dt2 = dt1.Copy();
      

  3.   


     #region 获得两个日期的间隔
            /// <summary>
            /// 获得两个日期的间隔
            /// </summary>
            /// <param name="DateTime1">日期一。</param>
            /// <param name="DateTime2">日期二。</param>
            /// <returns>日期间隔TimeSpan。</returns>
            public static TimeSpan DateDiff(DateTime DateTime1, DateTime DateTime2)
            {
                TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
                TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
                TimeSpan ts = ts1.Subtract(ts2).Duration();
                return ts;
            }
            #endregion