关于打印日历的java程序,哪位能帮忙看看哪里错了,帮忙改改?

2,4,6,9,11月这三个月的日历打印都是错的不知道哪里错了程序如下:importjava.util.*;importjava.io.*;publicclassT8_1... 2,4,6,9,11月这三个月的日历打印都是错的不知道哪里错了
程序如下:
import java.util.*;import java.io.*;
public class T8_1_1
{
public static void main(String args[]) throws IOException
{
int year,month;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please choose a year:");
year=Integer.parseInt(br.readLine());
System.out.println("Please choose a month:");
month=Integer.parseInt(br.readLine());
Calendar t;
t=Calendar.getInstance();
t.set(year-1900,month,1);
int starter=t.get(t.DAY_OF_WEEK);
int counter=1,day=31,i;

if(month!=2)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:day=31;break;
case 4:
case 6:
case 9:
case 11:day=30;break;
}
}
else
{
if(year%4==0&&year%100!=0||year%400==0)
day=29;
else day=28;
}
System.out.println("Here is the calender of"+year+"/"+month+"\n\n");
System.out.println("Sun\tMon\tTue\tWed\tThu\tFri\tSat");
for(i=1;i<starter;i++)
{
System.out.print(" \t");
}
for(i=starter;i<8;i++)
{
System.out.print(counter+" \t");
counter++;
}
System.out.print("\n");
for(i=1;counter<=day;i++,counter++)
{
System.out.print(counter+" \t");
if(i%7==0)System.out.print("\n");
}
System.out.print("\n");
}
}
展开
 我来答
鼻涕一米二
2012-12-20 · TA获得超过816个赞
知道小有建树答主
回答量:460
采纳率:100%
帮助的人:263万
展开全部
t.set(year-1900,month,1);

改成
t.set(year, month-1, 1); //year没什么说的,mouth从0开始,1月既是0月
更多追问追答
追问
谢你了,现在好了,但是还是不明白为什么
追答
没有为什么 year就是年,你为什么要减1900。瞬间偏移量的标准也是格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000。月就更没什么好说的了。说了Calendar.MONTH 字段的定义就是这么表示的。0-11对应1-12月
hdparrot
2012-12-20 · TA获得超过2403个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1148万
展开全部
鼻涕一米二说得对。

没理解你为什么要减去1900,应该没有必要。
追问
谢谢了,但是我还是不明白为什么要month-1
追答
MONTH是从0开始计数的,0就是1月,11就是12月。例如,你把MONTH设置为12,实际上就成了明年的1月了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenguang5092
2012-12-20 · TA获得超过664个赞
知道小有建树答主
回答量:520
采纳率:50%
帮助的人:455万
展开全部
t.set(year,month-1,1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sopherman
2012-12-20 · 超过14用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:25.7万
展开全部
到现在为止出现的结果是什么呢?报错还是没达到逾期将结果?
追问
没达到预期效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式