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。右?

どこが間違っていますか?

JRE1.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);

また、(私が思うに)1 月は月 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 に答える