两个日期
2010-7-21 00:00:00
2010-7-22 00:00:00怎么做能准备比较这两个日期之间相差的天数或者小时呢 ?用
TimeSpan ts = endDate.Subtract(startDate);
int days = ts.Days;
int hours = ts.Hours;days 算出来是 1
hours算出来时 0  

解决方案 »

  1.   

    TotalDays:返回TimeSpan值表示的天数。 
    TotalHours:返回TimeSpan值表示的小时数。 
      

  2.   

    DateTime startDate = DateTime.Parse("2010-7-21 00:00:00");
    DateTime endDate = DateTime.Parse("2010-7-22 00:00:00");
    TimeSpan ts = endDate.Subtract(startDate);
    double days = ts.TotalDays;
    double hours = ts.TotalHours;
      

  3.   

    public enum EnumDateCompare
        {
            year = 1,
            month = 2,
            day = 3,
            hour = 4,
            minute = 5,
            second = 6
        }    /// <summary>
        /// 日期比较函数
        /// </summary>
        /// <param name="howtocompare"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public double DateDiff(EnumDateCompare howtocompare, System.DateTime startDate, System.DateTime endDate)
        {
            double diff = 0;
            System.TimeSpan TS = new System.TimeSpan(endDate.Ticks - startDate.Ticks);        switch (howtocompare)
            {
                case EnumDateCompare.year:
                    diff = Convert.ToDouble(TS.TotalDays / 365);
                    break;
                case EnumDateCompare.month:
                    diff = Convert.ToDouble((TS.TotalDays / 365) * 12);
                    break;
                case EnumDateCompare.day:
                    diff = Convert.ToDouble(TS.TotalDays);
                    break;
                case EnumDateCompare.hour:
                    diff = Convert.ToDouble(TS.TotalHours);
                    break;
                case EnumDateCompare.minute:
                    diff = Convert.ToDouble(TS.TotalMinutes);
                    break;
                case EnumDateCompare.second:
                    diff = Convert.ToDouble(TS.TotalSeconds);
                    break;
            }
            return diff;
        }
    封装一下用起来比较方便 如:
    DateDiff(EnumDateCompare.hour,starttime,stoptime)
      

  4.   


    DateTime startDate = DateTime.Parse("2010-7-21 00:00:00");
    DateTime endDate = DateTime.Parse("2010-7-22 00:00:00");
    double days = (endDate - startDate).TotalDays;
    double hours = (endDate - startDate).TotalHours;