0

日付が2つの特定の日付の間にあるかどうかを調べようとしています。日付を表すためにカレンダーライブラリを使用しています。私のコード:

public static void double getnumber(Calendar cal){

Calendar cred1 = Calendar.getInstance();
Calendar cred2 = Calendar.getInstance();

    cred1.set(Calendar.JANUARY, 21, 2012);
    cred2.set(Calendar.FEBRUARY, 8, 2012);

    if(cal.after(cred1) && cal.before(cred2)){ 
    System.out.println("case 1");
    }
    else{
    System.out.println("case 2");
    }

}

私がテストしている日付はこれです:

    Calendar test = Calendar.getInstance();
    test.set(Calendar.JANUARY, 25, 2012);
    getnumber(test);

私の問題は、その日付をテストすると、アプリケーションが「ケース1」を出力することになっているときに、常に「ケース2」を出力することです。なぜ何かアイデアはありますか?私はすべてを試しましたが、何もうまくいかないようですので、どんな助けでも大歓迎です、ありがとう。

4

3 に答える 3

3

Calendar.set(int, int, int) の javadoc は次のように述べています。

public final void set(int year,
                  int month,
                  int date)
Sets the values for the fields year, month, and date.

月 - 日 - 年を設定しました : これは正しい順序ではありません

于 2012-04-11T11:01:55.960 に答える
1

だからこそ: これは Calendar.set のメソッドです

public final void set(int year, int month, int date)
    {
        set(YEAR, year);
        set(MONTH, month);
        set(DATE, date);
    }
于 2012-04-11T11:02:40.230 に答える
1

setあなたは間違った方向への議論を持っています。ドキュメントを参照してください。

于 2012-04-11T11:02:43.007 に答える