两个日期的时间间隔

/// <summary>   
        /// 返回两个日期之间的时间间隔(y:年份间隔、M:月份间隔、【d:天数间隔、h:小时间隔、m:分钟间隔、s:秒钟间隔、ms:微秒间隔,中括号内前加t,表示总数,如td,总天数】)   
        /// </summary>   
        /// <param name="Interval">间隔标志</param> 
        /// <param name="Date1">开始日期</param>   
        /// <param name="Date2">结束日期</param>             
        /// <returns>返回间隔标志指定的时间间隔</returns>   
        public static double DateDiff(string Interval, System.DateTime? Date1, System.DateTime? Date2)
        {
            double dblYearLen = 365;//年的长度,365天   
            double dblMonthLen = (365 / 12);//每个月平均的天数   
            System.TimeSpan objT;
            DateTime d1 = new DateTime();
            DateTime d2 = new DateTime();
            if (Date1 == null) return 0;
            if (Date2 == null) return 0;

            d1 = (DateTime)Date1;
            d2 = (DateTime)Date2;

            objT = d2.Subtract(d1);
            switch (Interval)
            {
                case "y"://返回日期的年份间隔   
                    return (double)System.Convert.ToInt32(objT.Days / dblYearLen);
                case "M"://返回日期的月份间隔   
                    return (double)System.Convert.ToInt32(objT.Days / dblMonthLen);
                case "d"://返回日期的天数间隔  
                    objT = Convert.ToDateTime(d2.ToShortDateString()).Subtract(Convert.ToDateTime(d1.ToShortDateString()));
                    return (double)objT.Days;
                case "h"://返回日期的小时间隔   
                    return (double)objT.Hours;
                case "m"://返回日期的分钟间隔   
                    return (double)objT.Minutes;
                case "s"://返回日期的秒钟间隔   
                    return (double)objT.Seconds;
                case "ms"://返回时间的微秒间隔   
                    return (double)objT.Milliseconds;
                case "td"://总天
                    return objT.TotalDays;
                case "th"://总小时数
                    return objT.TotalHours;
                case "tm"://总分钟
                    return objT.TotalMinutes;
                case "ts"://总秒
                    return objT.TotalSeconds;
                case "tms"://总毫秒
                    return objT.TotalMilliseconds;
                default:
                    break;
            }
            return 0;
        }
原文地址:https://www.cnblogs.com/mengxingxinqing/p/3164932.html