我很难找到一个日历的正确的第一天

时间:2014-04-15 00:49:50

标签: java

我试图让我的程序显示我指定的任何月份的日历,并显示每个月的正确天数,但它在大多数时间的错误日期每个月开始。

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Date;

public class FirstOfMonth 
{
int m;
int y;
int x;

public FirstOfMonth()
{
}

public void setFirstOfMonth(int month, int year)
{
    m = month;
    y = year;

    GregorianCalendar cal = new GregorianCalendar(y, m, 1);
    x = cal.get(Calendar.DAY_OF_WEEK);
}

public double getFirstOfMonth()
{
    return x;
}

}

1 个答案:

答案 0 :(得分:0)

由于某些未知原因,GregorianCalendar将1月定义为第0个月(请参阅Javadoc),因此您的代码需要对此进行补偿:

GregorianCalendar cal = new GregorianCalendar(y, m-1, 1);

在Java中高度混淆旧的时间和日期,幸运的是,Java 8有JSR-310