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

How to get the number of Period between two dates with Jodatime?

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

问题

给定两个 DateTime d1d2 和一个 Period p,我想知道 d2 之后的第一个 DateTime 即 d1 + k * p 其中 k是一个整数。

这是一个简单的问题,我可以使用循环来解决它。我想知道java有没有什么约定的方式。我的意思是可以在一两行中完成吗?

到目前为止我的想法

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

来获得正确的日期

Period 作为 long 的包装,你可以这样做:

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