"
///
/// 返回两个日期之间的时间间隔(y:年份间隔、M:月份间隔、【d:天数间隔、h:小时间隔、m:分钟间隔、s:秒钟间隔、ms:微秒间隔,中括号内前加t,表示总数,如td,总天数】)
///
///
间隔标志
///
开始日期
///
结束日期
/// 返回间隔标志指定的时间间隔
public static double DateDiff(string Interval, System.DateTime? Date1, //代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg2MzQ2OA==.html
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;
//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQwNzE2MA==.html
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;
}
"