【发布时间】:2020-03-13 15:05:15
【问题描述】:
假设我有一个自定义的TemporalAdjuster,每个星期天都会给我(也可能是每个第二个星期二等等)。如何计算一年中所有调整后的日期?
TemporalAdjuster myGamingAdjuster;
int myYear = 2003;
LocalDate myDate = LocalDate.now();
System.out.println(myDate.with(myGamingAdjuster)); // Gives only one date
【问题讨论】:
-
能不能用简单的输入输出例子解释一下
-
例如:我有一个自定义的 TemporalAdjuster。我不知道他到底在做什么。可能是这个调节器给了我一个星期天(一年大约 52 次)或圣诞节(一年一次)。现在,我想要一个循环来查找时间跨度内所有发生的日期。例如,一年内与此自定义调整员的所有约会。
-
您确定
TemporalAdjuster是您的重复方案的正确表示吗?我还没有真正理解它应该如何做你想让它做的事情。 -
并非所有的
TemporalAdjuster实现都会增加到未来的日期。一些,例如firstDayOfYear()和firstDayOfMonth()会重复返回相同的值。换句话说,一些TemporalAdjuster对象是idempotent。 -
也不是所有的
TemporalAdjusters 都限制自己的年份。例如TemporalAdjusters.previous(DayOfWeek.WEDNESDAY)可以将日期调整为上一年。要将其调整到 2003 年的最后一个星期三(那年 12 月 31 日),您需要从 2004 年的日期开始。我认为您在问不可能。
标签: java date java-time localdate temporal