日期與時間的運算(轉貼至自己部落格)
原始文章位置:http://www.dotblogs.com.tw/regionbbs/archive/2008/10/09/5636.aspx
因為我怕以後我要找這篇文章,因為這個實在太常用到了,很多案子都有這樣的需求,但是有時又記不起來,又要勞動Google大神來幫忙,所以我才會想要把文章內容自己再寫在自己的部落格裡。
好像不少人都不知道時間是可以相減的,而且不會太難,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,也就是你可以浮點數格式。