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

标签 java jodatime

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

问题

给定两个日期时间 d1d2 和一个句点 p,我想知道 d2 之后的第一个日期时间> 即 d1 + k * p,其中 k 是一个整数。

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

到目前为止我的想法

我认为我们有 k = (d2 - d1) % p 然后我们可以通过将 k+1 * p 添加到 d1< 来获得正确的日期

最佳答案

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

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

关于java - 如何使用 Jodatime 获取两个日期之间的周期数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949545/

相关文章:

java - 无法从 Java 中的 SQL 打印信息

java - 将 UTC 转换为东部盛行时间(EDT 或 EST)

java - 用Java获取两个工作日之间的分钟数

java - 从纪元到 Joda 中的 LocalDate 的秒数

java - 如何告诉protostuff将属性打包到fixed32而不是int32

Java GroupBy 之后排序

java - 我无法使用 Java Spring Boot 和 Angular 7 在远程服务器(Apache2)上上传文件。它在本地主机上运行良好

java - 如何遍历可更新列表?

java - Unix 纪元时间(以秒为单位)转换为 Joda DateTime

java - JodaTime 格式错误 - 不同机器上的格式不同