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() + " 秒";