Joda时间 - 两个日期之间的所有星期一

Fai*_*yet 8 java datetime days jodatime

我是第一次在Spring 3.0项目中使用Joda time api.现在我有一个开始和结束日期,我想得到这两个日期之间所有星期一的日期.我怎样才能做到这一点 ?

我不知道从哪里开始,有人可以建议.我查看了Joda Time的帖子:如何在某个日期间隔获取工作日的日期?它提供了某种指导,但由于对joda的经验不足,它仍然有些模糊.

lsc*_*hin 14

LocalDate startDate = new LocalDate(2011, 11, 8);
LocalDate endDate = new LocalDate(2012, 5, 1);

LocalDate thisMonday = startDate.withDayOfWeek(DateTimeConstants.MONDAY);

if (startDate.isAfter(thisMonday)) {
    startDate = thisMonday.plusWeeks(1); // start on next monday
} else {
    startDate = thisMonday; // start on this monday
}

while (startDate.isBefore(endDate)) {
    System.out.println(startDate);
    startDate = startDate.plusWeeks(1);
}
Run Code Online (Sandbox Code Playgroud)


Max*_*Max 5

我最近开发了Lamma,旨在解决这个确切的用例:

Dates.from(2011, 11, 8).to(2011, 12, 30).byWeek().on(DayOfWeek.MONDAY).build();
Run Code Online (Sandbox Code Playgroud)

你会得到一个List<Date>

Date(2011,11,14)
Date(2011,11,21)
Date(2011,11,28)
Date(2011,12,5)
Date(2011,12,12)
Date(2011,12,19)
Date(2011,12,26)
Run Code Online (Sandbox Code Playgroud)