微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在尝试编写一个 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++;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐