作为参考,用于制定输出的当前日期是 2015 年 7 月 22 日星期三 (22/07/2015)
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
作为替代方案
(这基本上适用于所有其他提到的 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
乔达时间
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