其他答案都很好。在您的 Android 手机上运行 Java 9 之前可能还需要一段时间,但对于其他阅读的人,我想提供 Java 9(及更高版本)代码片段:
LocalDate startDate = LocalDate.of(2018, Month.APRIL, 29);
int howManyDays = 30;
List<LocalDate> dates = startDate.datesUntil(startDate.plusDays(howManyDays))
.collect(Collectors.toList());
System.out.println(dates);
输出是:
[2018-04-29、2018-04-30、2018-05-01、2018-05-02、2018-05-03、2018-05-04、2018-05-05、2018-05-06、2018 -05-07、2018-05-08、2018-05-09、2018-05-10、2018-05-11、2018-05-12、2018-05-13、2018-05-14、2018-05 -15、2018-05-16、2018-05-17、2018-05-18、2018-05-19、2018-05-20、2018-05-21、2018-05-22、2018-05-23 , 2018-05-24, 2018-05-25, 2018-05-26, 2018-05-27, 2018-05-28]
正如我在评论中已经说过的那样,更喜欢java.time
Joda-Time(您为您的问题找到的片段正在使用)。java.time
是现代 Java 日期和时间 API。Joda-Time 主页说:
请注意,Joda-Time 被认为是一个基本上“完成”的项目。没有计划进行重大改进。如果使用 Java SE 8,请迁移到java.time
(JSR-310)。
如果您确实想使用问题中的代码段,您所要做的就是删除第一行并更改days
为howManyDays
第二行和第三行。
链接