毫秒转换为天、小时、分、秒
将毫秒数或两个日期类型数转换为*天*小时*分*秒的方法,在进行时间段计算时应该经常用到。
记得有一道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()); }
感谢共享者,由于找不到原文链接,所以本代码我完全未做改动以体现对原作者的尊重。
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.