如何使用Jodatime获取两个日期之间的期间数?

时间:2015-08-11 18:39:55

标签: java jodatime

对于有经验的Java开发人员,我想这是一个简单的JodaTime问题。

问题

鉴于两个DateTime d1d2和一个句点p,我想知道d2 d1 + k * p之后的第一个DateTime k {{1}是一个整数。

这是一个简单的问题,我可以使用循环来解决它。我想知道java中是否存在任何缩小的方式。我的意思是可以在一行或两行中完成吗?

到目前为止我的想法

我认为我们有k = (d2 - d1) % p然后我们可以通过将k+1 * p添加到d1

来获取正确的日期

1 个答案:

答案 0 :(得分:1)

Periodlong的包装,你可以这样做:

long between = d2.getMillis() - d1.getMillis();
long period = p.getMillis();
int k = between / period + 1;
DateTime firstAfter = d1.plusMillis(k * p);