我是一名 3 个月大的 Java 学生。对于我的一个模块,我试图将一周的第一天设置为星期二(这样真正的星期五现在应该在索引 3 处)但它没有显示预期的结果。
我正在通过扫描仪输入日期。 下面是相关的代码和输出:
Calendar c= Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.TUESDAY);
c.setTime(date);
int dayOfWeek=c.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
Output:
Enter the date(dd/mm/yyyy):
03/07/2014
6
不知道我哪里错了。尝试了很多谷歌搜索,甚至设置了 minimalDAysOfFirstWeek 但没有任何效果。我想要的是 03/07/2014 显示为索引 3。如何实现?
最佳答案
我认为您误解了 setFirstDayOfWeek
的目的.
这不会改变 c.get(Calendar.DAY_OF_WEEK)
完全有效 - 它会改变调用 c.get(Calendar.WEEK_OF_MONTH)
和 c.get(Calendar.WEEK_OF_YEAR)
,根据文档:
When setting or getting the
WEEK_OF_MONTH
orWEEK_OF_YEAR
fields, Calendar must determine the first week of the month or year as a reference point. The first week of a month or year is defined as the earliest seven day period beginning ongetFirstDayOfWeek()
and containing at leastgetMinimalDaysInFirstWeek()
days of that month or year.
换句话说,星期日始终是星期日...但是 6 月 10 日星期日是否与 6 月 11 日星期一在同一周取决于一周的第一天。
关于java - 日历不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554241/