【发布时间】:2020-11-07 11:28:45
【问题描述】:
我已经使用 Joda Time 创建了一个循环来遍历月份并根据指定的每月频率返回日期。问题是,如果今天的日期是月底,则循环不会返回我的预期结果。如果我从 2020 年 7 月 31 日开始,经过多次迭代后,我希望返回 2021 年 7 月 31 日,而不是返回 2020 年 7 月 30 日(因为上个月只有 30 天)。
我的代码:
int frequency = 3;
for(LocalDate date = startDate; date.isBefore(endDate); date=date.plusMonths(frequency) {
int date = Integer.parseInt(date.plusMonths(frequency).toString("yyyyMMdd"));
}
我的预期结果应该是: 2020 年 7 月 31 日 2020 年 10 月 31 日 2021 年 1 月 31 日 2021 年 4 月 30 日 2021 年 7 月 31 日。但此代码返回 2020 年 7 月 30 日。
我也试过这段代码,但没有成功:
Integer.parseInt(date.dayOfMonth().withMaximumValue().plusMonths(frequency).toString("yyyyMMdd"));
如何正确遍历月末?
【问题讨论】: