优秀的编程知识分享平台

网站首页 > 技术文章 正文

Java修炼终极指南:82. 获取两个日期之间的周数

nanyue 2024-10-22 13:09:04 技术文章 7 ℃


如果给定的两个日期是`LocalDate`(时间)的实例,我们可以依赖于`java.time.temporal.ChronoUnit`。这个API公开了一组有用的单位,用于操作日期、时间或日期时间,我们在问题73中之前使用过它。这次,让我们再次使用它来计算两个日期之间的周数:

public static long nrOfWeeks(
    LocalDateTime startLdt1, LocalDateTime endLdt2) {
  return Math.abs(ChronoUnit.WEEKS.between(
    startLdt1, endLdt2));
}


另一方面,如果给定的日期是`java.util.Date`,你可以选择将它们转换为`LocalDateTime`并使用前面的代码,或者依赖于`Calendar` API。使用`Calendar` API是关于从开始日期循环到结束日期,同时将日历日期逐周递增:

public static long nrOfWeeks(Date startDate, Date endDate) {
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(startDate);
  int weeks = 0;
  while (calendar.getTime().before(endDate)) {
    calendar.add(Calendar.WEEK_OF_YEAR, 1);
    weeks++;
  }
  return weeks;
}


当日历日期在结束日期之后时,我们就得到了周数。

最近发表
标签列表