获取本地日期之间的日历周差异

我在找帖子时遇到了麻烦,除了解决方案之外

  

获取日差并除以7

我希望了解两个日期之间的日历周之间的差异,星期从星期一开始。

例如,2019年11月4日至2019年11月10日之间的星期数应为0。

但是,2019年11月10日至2019年11月11日之间的星期数应该为1。

解决方案还应说明不同年份的日期。是否有使用LocalDate的解决方案?

gehui19890302 回答:获取本地日期之间的日历周差异

ChronoUnit具有a between method,可返回开始日期和结束日期/时间之间的完整单位数。要计算星期一到星期日的星期数,您可以将日期“舍入”到上一个星期一。在您的情况下,可能看起来像这样:

LocalDate start = LocalDate.of(2019,11,10);
LocalDate end = LocalDate.of(2019,11);

LocalDate mondayStart = start.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
LocalDate mondayEnd = end.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));

System.out.println(ChronoUnit.WEEKS.between(mondayStart,mondayEnd));
,

我将从一个已知的星期一开始,然后计算从那以后算起的星期数。 1962年1月1日是一个星期一(其他星期一也可用)。

LocalDate knownMonday = LocalDate.of(1962,1,1);
LocalDate start = LocalDate.of(2019,10);
LocalDate end   = LocalDate.of(2019,11);
long sWeek = (long)Math.floor(knownMonday.until(start,ChronoUnit.DAYS)/7.0);
long lWeek = (long)Math.floor(knownMonday.until(end,ChronoUnit.DAYS)/7.0);
System.out.println(lWeek-sWeek);
,

使用GregorianCalendar。它具有计算周差异的方法。

本文链接:https://www.f2er.com/3163765.html

大家都在问