两个日期的时间间隔
/// <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; }