列出一周中的几天,给定周和年
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
或其他任何东西中。
使用 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
或其他任何东西中。