如何使用 Jodatime 获取两个日期之间的 Period 数?
How to get the number of Period between two dates with Jodatime?
对于有经验的 java 开发人员,我想这是一个简单的 JodaTime 问题。
问题
给定两个 DateTime d1
、d2
和一个 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);
对于有经验的 java 开发人员,我想这是一个简单的 JodaTime 问题。
问题
给定两个 DateTime d1
、d2
和一个 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);