0

我试图找出日期是否在两个特定日期之间。我正在使用日历库来表示日期。我的代码:

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 回答