作为参考,用于制定产出的当前日期是2015年7月22日星期三(2015年7月22日)
Java 8
LocalDate ld = LocalDate.now();
LocalDate sunday = ld.minusDays(ld.getDayOfWeek().getValue());
LocalDate tommorrow = ld.plusDays(1);
LocalDate date = sunday;
while (date.isBefore(tommorrow)) {
System.out.println(date);
date = date.plusDays(1);
}
打印
2015-07-19
2015-07-20
2015-07-21
2015-07-22
As an alternative
(这基本上适用于所有其他提到的API)你可以从今天开始向后走......
LocalDate date = LocalDate.now();
do {
System.out.println(date);
date = date.minusDays(1);
} while (date.getDayOfWeek() != DayOfWeek.SATURDAY);
打印
2015-07-22
2015-07-21
2015-07-20
2015-07-19
JodaTime
LocalDate now = LocalDate.now();
LocalDate sunday = now.minusDays(5).withDayOfWeek(DateTimeConstants.SUNDAY);
LocalDate tommorrow = now.plusDays(1);
LocalDate date = sunday;
while (date.isBefore(tommorrow)) {
System.out.println(date);
date = date.plusDays(1);
}
打印
2015-07-19
2015-07-20
2015-07-21
2015-07-22
日历
作为最后的手段 . 但请记住, Calendar 带有时间信息,因此使用 before , after 和 equals 可能并不总是按照您认为应该做的...
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Calendar today = Calendar.getInstance();
while (cal.before(today)) {
System.out.println(cal.getTime());
cal.add(Calendar.DATE, 1);
}
打印
Sun Jul 19 15:01:49 EST 2015
Mon Jul 20 15:01:49 EST 2015
Tue Jul 21 15:01:49 EST 2015
Wed Jul 22 15:01:49 EST 2015