我是一名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.如何实现?
答案 0 :(得分:6)
我认为您误解了setFirstDayOfWeek
的目的。
根本没有改变c.get(Calendar.DAY_OF_WEEK)
的作用 - 根据文档更改了调用c.get(Calendar.WEEK_OF_MONTH)
和c.get(Calendar.WEEK_OF_YEAR)
的结果:
设置或获取
WEEK_OF_MONTH
或WEEK_OF_YEAR
字段时,日历必须将月份或年份的第一周确定为参考点。一个月或一年的第一周被定义为从getFirstDayOfWeek()
开始的最早的七天时段,其中包含该月或一年的至少getMinimalDaysInFirstWeek()
天。
换句话说,星期日总是星期天......但是6月10日星期日是否与6月11日星期一同一周,取决于被认为是一周的第一天。
答案 1 :(得分:0)
switch (c.get(Calendar.DAY_OF_WEEK)) {
case Calendar.TUESDAY:
return 0;
case Calendar.WEDNESDAY:
return 1;
// And so on...
default:
break;
}