DateTime 時間群組的換算

這篇記錄了二種的時間轉換方式,轉換的原因依舊是時間要群組化為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);

 


LINE討論群FB討論區

歡迎您的加入,讓這個社群更加美好!

聯絡方式:
FaceBook
E-Mail