日历不正常

时间:2014-07-03 12:53:01

标签: java date calendar

我是一名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.如何实现?

2 个答案:

答案 0 :(得分:6)

我认为您误解了setFirstDayOfWeek的目的。

根本没有改变c.get(Calendar.DAY_OF_WEEK)的作用 - 根据文档更改了调用c.get(Calendar.WEEK_OF_MONTH)c.get(Calendar.WEEK_OF_YEAR)的结果:

  

设置或获取WEEK_OF_MONTHWEEK_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;
}