將毫秒數或兩個日期類型數轉換為*天*小時*分*秒的方法,在進行時間段計算時應該經常用到。
記得有一道ACM題就是從一個計時方法A轉換為另一個計時方法B,思路如下:總時間不會變,1s就是1s,只不過小時、分鍾、天等包含的秒數不一樣,所以先把A轉換為總秒數sumSec,然后用sumSec得出B下的時間;很簡單吧,我們協會沒人想出來,我一直哦在思考原因,是不是因為學習學的沒了創造性。
關於格式化Date類型的問題不在本文討論范圍之內,請讀者自行查閱。
/** * * @param 要轉換的毫秒數 * @return 該毫秒數轉換為 * days * hours * minutes * seconds 后的格式 * @author fy.zhang */ public static String formatDuring(long mss) { long days = mss / (1000 * 60 * 60 * 24); long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60); long seconds = (mss % (1000 * 60)) / 1000; return days + " days " + hours + " hours " + minutes + " minutes " + seconds + " seconds "; } /** * * @param begin 時間段的開始 * @param end 時間段的結束 * @return 輸入的兩個Date類型數據之間的時間間格用* days * hours * minutes * seconds的格式展示 * @author fy.zhang */ public static String formatDuring(Date begin, Date end) { return formatDuring(end.getTime() - begin.getTime()); }
感謝共享者,由於找不到原文鏈接,所以本代碼我完全未做改動以體現對原作者的尊重。