我有两个日期:
Date dt1 = new Date("04/11/2013 11:00:00");//date
Date dt2 = new Date("04/12/2013 11:00:00");
然后我使用此代码进行处理,以了解 dt1
和 dt2
之间间隔了多少周
double tanggal = (dt2.getTime() - dt1.getTime()) / (24 * 60 * 60 * 1000);
double week= (double) Math.ceil(tanggal/7);
我尝试运行此代码,结果周为 1.0
,但是当 dt2
为 04/11/2013 11:00:01
code> , 结果周为 0.0
。
如果 dt2
为 04/11/2013 11:00:01
,如何更改结果,使结果周为 1.0
?我希望,当dt2
直到第七天或04/18/2013 11:00:01
时,结果更改为2.0
。如何做到这一点?
最佳答案
如果我理解正确,您希望将日期差异四舍五入到最近的一周。如果日期时间差异小于一天,您得到 0 的原因是您舍入得太早。您需要做的就是将时间戳转换为 double,然后除以当天的毫秒数。这样您就不会失去一天以内的时差。将您的代码更改为
double tanggal = ((double)(dt2.getTime() - dt1.getTime())) / (24 * 60 * 60 * 1000);
double week= (double) Math.ceil(tanggal/7);
这样,您的结果将是 1.0
。
关于java - 日期 天数和时间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942932/