我是Java的新手,我在谷歌和这个论坛上做了一些搜索,但我仍然不确定这是一个好方法。 (Joda时间不是我的选择)。
Date d1;
Date d2;
Date d3;
float a;
对我来说有什么好办法:
d3 + a - (d1 - d2);
我需要在d1和d2之间获得毫秒,然后将d3转换为日历以向其添加毫秒数吗?
谢谢!
编辑:我应该提到浮动a表示分钟数,例如a = 35.6分钟。
答案 0 :(得分:4)
这取决于你所说的“差异” - 差异可以有方向或绝对。
如果要添加绝对间隙,请使用:
Date result = new Date(d3.getTime() + Math.abs(d2.getTime() - d1.getTime()));
如果你关心d2与d1相关(即如果d2在 d1之前你实际上减去了差距),那么使用:
Date result = new Date(d3.getTime() + d2.getTime() - d1.getTime());
<强>编辑:强>
在回复评论时,是:如果float a
是分钟数,您可以进一步添加a * 60000
以获得新的长数毫秒并从中创建新日期。