static public DateTime ToDate(this object data) { if (data == null) return DateTime.MinValue; DateTime result; return DateTime.TryParse(data.ToString(), out result) ? result : DateTime.MinValue; } //C#计算两个时间年份月份差 DateTime dt1 = "2008-8-8".ToDate(); DateTime dt2 = DateTime.Now; int Year = dt2.Year - dt1.Year; int Month = (dt2.Year - dt1.Year) * 12 + (dt2.Month - dt1.Month); //计算两个日期的时间间隔 TimeSpan ts1 = new TimeSpan(dt1.Ticks); TimeSpan ts2 = new TimeSpan(dt2.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration(); var dateDiff = ts.Days.ToString() + " 天" + ts.Hours.ToString() + " 小时" + ts.Minutes.ToString() + " 分钟" + ts.Seconds.ToString() + " 秒";