列出一周中的几天,给定周和年

list days in the week, given week and year

使用 joda-time,是否可以仅给定周和年来获取特定周内的日期列表?我找到的所有示例,我都需要设置一个日期(日-月-年),然后我才能找到给定周内的日期列表。

Joda-Time 没有专用的 class 用于年份 (-of-weekdate) 和 week-of-year 的组合。因此 - 在 Joda-Time 的范围内 - 你必须使用类似此代码的解决方法,它使用固定 day-of-week 的替换 LocalDate (此处:星期一作为 calendar-week 的第一天如 ISO-8601 标准中所定义):

int year = 2015;
int week = 52;

LocalDate d = new LocalDate();
d = d.weekyear().setCopy(year);
d = d.weekOfWeekyear().setCopy(week);
d = d.withDayOfWeek(DateTimeConstants.MONDAY);

for (int i = 0; i < 7; i++) {
    System.out.println(d);
    d = d.plusDays(1);
}

输出:

//  2015-12-21
//  2015-12-22
//  2015-12-23
//  2015-12-24
//  2015-12-25
//  2015-12-26
//  2015-12-27

最后,您可以将收集到的日期放入 ArrayList 或其他任何东西中。