日期與時間的運算

好像不少人都不知道時間是可以相減的,而且不會太難,DateTime 有覆寫 "-" 這個運算子,所以只要 DateTime2 - DateTime1,或是 DateTime - TimeSpan 都可,不過它傳回來的是一個 TimeSpan (時間幅度) 的物件,可以由這個物件中的方法來取得兩個時間的差異。

好像不少人都不知道時間是可以相減的,而且不會太難,DateTime 有覆寫 "-" 這個運算子,所以只要 DateTime2 - DateTime1,或是 DateTime - TimeSpan 都可,不過它傳回來的是一個 TimeSpan (時間幅度) 的物件,可以由這個物件中的方法來取得兩個時間的差異。

TimeSpan ts = DateTime.Now - startDate;
Console.WriteLine(ts.Seconds); // 取得兩個時間相差幾秒。

另一個運算的方法是,兩個時間是否可以相加?答案是可以的,DateTime 也有覆寫 "+" 這個運算子,不過它要求 "+" 右邊的物件必須是一個 TimeSpan 物件,這樣的想法也沒錯,因為如果是兩個 DateTime 相加,那要根據什麼來加呢?

不過以加減日期時間運算來說,最常用的還是下列幾個方法:

  • DateTime.AddYears()
  • DateTime.AddMonths()
  • DateTime.AddDays()
  • DateTime.AddHours()
  • DateTime.AddMinutes()
  • DateTime.AddSeconds()
  • DateTime.AddTicks() // 刻度,單位為 100 亳微秒
  • DateTime.AddMilliseconds() // 加亳秒 (ms)

這些方法都可以支援正負數 (正數為加,負數為減),並且部份方法的資料型別是 double,也就是你可以浮點數格式。