gpt4 book ai didi

java - 如何使用 Java 日期时间 API 或 Joda-time 查找前 n 个星期日?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:03:35 25 4
gpt4 key购买 nike

我们如何计算前一个星期日或前一个星期日之前的星期日,或者一般来说如何找出 n 周之前的星期日?要注意的是,如果今天是星期天,那么今天返回的应该是星期天,而不是上周。

寻找 Joda-Time 或 Java 8 时间解决方案。

编辑:我试过了

DateTime sunday = now
.minusWeeks(1)
.withDayOfWeek(DateTimeConstants.SUNDAY)
.wi‌​thTimeAtStartOfDay()‌​;
DateTime previousWeekSunday = now
.minusWeeks(2)
.withDayOfWeek(DateTimeConstants.SATURDAY)
.‌​withTime(23, 59, 59, 999);

但是如果当前是星期日,那么这个逻辑就会失败,因为它没有给出今天的日期。

最佳答案

您基本上需要检查今天是否是星期日,如果不是,则回头查找上一个...(或者如果您需要前一个日期,则递归地向后移动日期...)

使用 java 8 你需要:


LocalDate date = LocalDate.now();
DayOfWeek todayAsDayOfWeek = date.getDayOfWeek();
LocalDate prevSun = todayAsDayOfWeek == DayOfWeek.SUNDAY ? date : date.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY));
System.out.println(prevSun);

编辑:previousOrSame 方法将跳过实际星期几的检查

    LocalDate date = LocalDate.now();
LocalDate prevSun = date.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY));

prevSun = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.SUNDAY));
System.out.println(prevSun);

关于java - 如何使用 Java 日期时间 API 或 Joda-time 查找前 n 个星期日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321520/

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