C#裡兩個時間相減,得到一個 TimeSpan 執行個體,TimeSpan 有一些屬性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意沒有 TotalTicks。
這些屬性名稱開始理解有些困難,但閱讀本文後,相應您一定茅塞頓開。
舉例說明 時間 1 是 2010-1-2 8:43:35; 時間 2 是 2010-1-12 8:43:34。
用時間 2 減時間 1,得到一個 TimeSpan 執行個體。
那麼時間 2 比時間 1 多 9 天 23 小時 59 分 59 秒。
那麼,Days 就是 9,Hours 就是 23,Minutes 就是 59,Seconds 就是 59。
再來看 Ticks,Tick 是一個計時周期,表示一百納秒,即一千萬分之一秒,那麼 Ticks 在這裡表示總共相差多少個時間周期,即:9 * 24 * 3600 * 10000000 + 23 * 3600 * 10000000 + 59 * 60 * 10000000 + 59 * 10000000 = 8639990000000。3600 是一小時的秒數。
TotalDays 就是把 Ticks 換算成日數,即:8639990000000 / (10000000 * 24 * 3600) = 9.99998842592593。
TotalHours 就是把 Ticks 換算成小時數,即:8639990000000 / (10000000 * 3600) = 239.999722222222。
TotalMinutes 就是把 Ticks 換算成分鐘數,即:8639990000000 / (10000000 * 60) = 14399.9833333333。
TotalSeconds 就是把 Ticks 換算成秒數,即:8639990000000 / (10000000) = 863999。
負數
上面是較晚的日期減較早的日期,所以各屬性值為正數,如果是較早的日期減較晚的日期,則屬性值為負數。