如何获取两个日历实例之间的天数?

新手上路,请多包涵

我想找出两个 Calendar 对象之间的天数差异,如果日期发生变化,例如如果时钟从 23:59-0:00 打勾,则应该有天数差异。

我写了这个

public static int daysBetween(Calendar startDate, Calendar endDate) {
    return Math.abs(startDate.get(Calendar.DAY_OF_MONTH)-endDate.get(Calendar.DAY_OF_MONTH));
}

但它不起作用,因为如果有月份差异,它只会给出天数之间的差异,这是毫无价值的。

原文由 Akram 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 417
2 个回答

在 Java 8 及更高版本中,我们可以简单地使用 java.time 类。

 hoursBetween = ChronoUnit.HOURS.between(calendarObj.toInstant(), calendarObj.toInstant());

daysBetween = ChronoUnit.DAYS.between(calendarObj.toInstant(), calendarObj.toInstant());

原文由 Mohamed Anees A 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试以下方法:

 public static long daysBetween(Calendar startDate, Calendar endDate) {
    long end = endDate.getTimeInMillis();
    long start = startDate.getTimeInMillis();
    return TimeUnit.MILLISECONDS.toDays(Math.abs(end - start));
}

原文由 Jk1 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题