這篇記錄了二種的時間轉換方式,轉換的原因依舊是時間要群組化為5分鐘一單位,但在網路上找了很久只好自己土炮,再趁著有空的時候把寫法記下來,不然未來要用的時候失智真的是很痛苦的一件事。
第一種寫法:
以Ticks來做處理
public void GetDateTime()
{
// 將時間轉為Tick做計算
long ticks = 時間單位.Ticks;
// Tick換算為5分鐘為3000000000
if (!(ticks % 3000000000 == 0))
ticks += 3000000000 - (ticks % 3000000000);
}
其中的時間單位,請自行填入DateTime型別,再點出Ticks來做時間戳的計算
時間戳單位換算
1秒 = 10000000
1分鐘=600000000
以此類推...
舉例來說明這個案例
現在時間為28分,28÷5=5...3,也就是說現在時間為3分,要將其轉換為5分的時候,則必須3+(5-3)=5。
透過上述這個算法,則能夠將時間轉換為5分鐘為一個單位,那最後要怎麼轉為DateTime呢?
很簡單
new DateTime(ticks);
這樣就能取得時間單位了
第二種寫法
這個寫法是直接操作DateTime來做時間的處理
// 將時間轉為Tick做計算
DateTime dtMin = 時間單位.Ticks;
// 以下計算方式同上方算法,不過是改以毫秒做計算,提供做為參考
dtMin = dtMin.AddMinutes(-(dtMin.Minute % 5));
dtMin = dtMin.AddMilliseconds(-dtMin.Millisecond - 1000 * dtMin.Second);
dtMin = dtMin.AddMinutes(5);
歡迎您的加入,讓這個社群更加美好!