1

有下一个功能来获得一年中的一周:

static public Integer getWeek(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setMinimalDaysInFirstWeek(1);
    cal.setTime(date);
    Integer week = cal.WEEK_OF_YEAR;
    Integer month = cal.MONTH;
    if ((week == 1) && (month == 12)) week = 52;
    return week;
}

调用 date=02.01.2013 的函数

我在调试中看到的:

  1. 日期 = 2013 年 1 月 2 日星期三 00:00:00 SAMT
  2. 周 = 3
  3. 月 = 2

我想得到:周=1,月=1。对?

我哪里错了?

JRE 1.6

非常感谢提前。

4

2 回答 2

11

Calendar.WEEK_OF_YEAR并且Calendar.MONTH是 Calendar 用于查找字段的静态常量。你要

Integer week = cal.get(Calendar.WEEK_OF_YEAR);
Integer month = cal.get(Calendar.MONTH);

另外,请注意(我认为)一月被认为是第 0 个月。

于 2013-01-03T19:03:14.077 回答
0

public final static int WEEK_OF_YEAR = 3;是日历的内部来源。

当您访问WEEK_OF_YEAR它时会打印该字段的值,它将被视为访问Calendar类的静态字段。

如果你想得到一周,你需要做Integer week = cal.get(Calendar.WEEK_OF_YEAR);

于 2013-01-03T19:05:31.323 回答