JAVA请大神帮我看看我这代码哪里错?

运行后闰年的2月显示不出29天,还是28天,是怎么回事?这是一部分代码,不能全放,请大神帮我看看privatestaticStringtest(intyear,intmo... 运行后闰年的2月显示不出29天,还是28天,是怎么回事?这是一部分代码,不能全放,请大神帮我看看
private static String test(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month - 1);
String str = "日\t一\t二\t三\t四\t五\t六\r";
int day = getDay(year, month - 1);
c.set(Calendar.DAY_OF_MONTH, 1);
str += getStartWeizhi(c);
for (int i = 2; i <= day; i++) {
c.set(Calendar.DAY_OF_MONTH, i);
if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
str += i + "\r";
} else {
str += i + "\t"; }
}
return str;}
private static int getDay(int year, int month) {
int[] DAYS = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (month != 2) {
return DAYS[month];
}
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 29;
}
return 29;
}
private static String getStartWeizhi(Calendar c) {
int idx = c.get(Calendar.DAY_OF_WEEK);
StringBuffer buf = new StringBuffer();
for (int i = 0; i < idx - 1; i++) {
buf.append(" \t");
}
if (Calendar.SATURDAY == idx) {
buf.append(c.get(Calendar.DAY_OF_MONTH) + "\r");
} else {
buf.append(c.get(Calendar.DAY_OF_MONTH) + "\t");
}
return buf.toString();
}
展开
 我来答
双桩亮太郎
2015-06-18 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:85.6万
展开全部
这里有问题
if (month != 2) {
return DAYS[month];
}
你这里不应该是month != 2,因为数组序列是从零开始的当month == 2你return DAYS[2];

其实是三月的天数
追问
那应该怎么改?
追答
month!=1或者month+1!=2呗。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式