加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java代码,用于计算日期范围内的中夜数(00:00:00)

发布时间:2020-12-15 04:20:20 所属栏目:Java 来源:网络整理
导读:我正在尝试编写一个 java块来查找特定日期范围内的中午数. 例如: 开始日期:05/01/2014 00:00:00 截止日期:05/03/2014 00:00:00 这个范围有3个中午. 要么 开始日期:05/01/2014 00:00:00 截止日期:05/02/2014 23:59:59 这只有一个. 它基本上要告诉我时间
我正在尝试编写一个 java块来查找特定日期范围内的中午数.

例如:

开始日期:05/01/2014 00:00:00
截止日期:05/03/2014 00:00:00

这个范围有3个中午.

要么

开始日期:05/01/2014 00:00:00
截止日期:05/02/2014 23:59:59

这只有一个.

它基本上要告诉我时间“00:00:00”在日期范围内发生了多少次.
请帮帮我.我尝试了很多方法,但没有一个正确.

解决方法

使用Joda-Time的答案是不正确的.因为@khriskooper已经注意到了之间的中午数

2014-05-01 00:00:00 and 2014-05-02 23:59:59

不是一个,而是两个中午!

所以这里使用Joda-Time进行校正(未经测试),但它也可以是支持日程计算的任何其他库(对于旧的Java-pre8不适用).我省略了时区细节,因为我不认为它与问题真正相关.如果OP想要他可以用DateTime替换LocalDateTime并应用时区.

LocalDateTime ldt1 = new LocalDateTime(2014,5,1,0);
LocalDateTime ldt2 = new LocalDateTime(2014,2,23,59,59);

int days = Days.daysBetween(ldt1.toLocalDate(),ldt2.toLocalDate()).getDays();
if (ldt1.toLocalTime().equals(new LocalTime(0,0))) {
  days++;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读