Michael Pief..
5
实际上,这取决于。考虑以下Java代码。这实际上非常简单,我希望它可以在2011-09-18之前的星期一(即2011-09-12)打印:
Calendar calendar = Calendar.getInstance(Locale.GERMANY);
System.out.printf("First day of week: %d%n%n", calendar.getFirstDayOfWeek());
calendar.set(2011, Calendar.SEPTEMBER, 18);
System.out.printf("Starting day: %tF%n", calendar);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.printf("Last monday: %tF%n%n", calendar);
calendar.set(2011, Calendar.SEPTEMBER, 18);
System.out.printf("Starting day: %tF (week %d)%n",
calendar, calendar.get(Calendar.WEEK_OF_YEAR));
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.printf("Last monday: %tF (week %d)%n", calendar,
calendar.get(Calendar.WEEK_OF_YEAR));
但实际上结果有些不同:
First day of week: 2
Starting day: 2011-09-18
Last monday: 2011-09-19
Starting day: 2011-09-18 (week 37)
Last monday: 2011-09-12 (week 37)
换句话说,结果取决于我的日历是否知道我可能对该周感兴趣。如果我查询,结果实际上会改变WEEK_OF_YEAR!