gpt4 book ai didi

java - 使用 Java 8 时间 API 根据当前日期在三个月内填充一周的最后几天(周一至周日)的 arrayList

转载 作者:行者123 更新时间:2023-12-01 07:48:00 25 4
gpt4 key购买 nike

开发时间表选择页面,其中应预先填充过去三个月的周末日期列表。需要一个使用 Java 8 时间 API 的 O(n) 进程。

我当前的解决方案检查当前日期是否是星期日,如果不是,则找出本周末,然后迭代回三个月。寻找优化的解决方案。

最佳答案

我回答过类似的问题HERE .

我们必须检查上周六与三个月前的日期之间相差了多少周。然后是简单的数学:

LocalDate lastSunday = LocalDate.now()
.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY));

long weeks = ChronoUnit.WEEKS.between(lastSunday.minusMonths(3L), lastSunday);

List<LocalDate> collect = Stream.iterate(lastSunday.minusWeeks(weeks), d -> d.plusWeeks(1L))
.limit(weeks + 1)
.collect(Collectors.toList());

关于java - 使用 Java 8 时间 API 根据当前日期在三个月内填充一周的最后几天(周一至周日)的 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46188194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com