对于有经验的Java开发人员,我想这是一个简单的JodaTime问题。
鉴于两个DateTime d1
,d2
和一个句点p
,我想知道d2
d1 + k * p
之后的第一个DateTime k
{{1}是一个整数。
这是一个简单的问题,我可以使用循环来解决它。我想知道java中是否存在任何缩小的方式。我的意思是可以在一行或两行中完成吗?
我认为我们有k = (d2 - d1) % p
然后我们可以通过将k+1 * p
添加到d1
答案 0 :(得分:1)
Period
是long
的包装,你可以这样做:
long between = d2.getMillis() - d1.getMillis();
long period = p.getMillis();
int k = between / period + 1;
DateTime firstAfter = d1.plusMillis(k * p);