Java写的一个日历,不知道错在哪里,就是日期老是错

importjava.util.Scanner;publicclassA4_27_2{/***@paramargs*/publicstaticvoidmain(Strin... import java.util.Scanner;
public class A4_27_2 {

/**
* @param args
*/
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入年份:");
int year=in.nextInt();
System.out.println("请输入月份:");
int month=in.nextInt();
int sum = 0;
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0)
{
sum+=366;
}
else{
sum+=365;
}
}
for(int i=1;i<month;i++){
if (i==2)
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
if(i==4||i==6||i==9||i==11){
sum+=30;
}else{
sum+=31;
}

}

int days;
if (month==2){
if(year%4==0&&year%100!=0||year%400==0){
days=29;
}else{
days=28;
}
}
if(month==4||month==6||month==9||month==11){
days=30;
}else{
days=31;
}

sum+=1;

int week=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=week;i++){
System.out.print("\t");
}

for(int i=1;i<=days;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}

// TODO Auto-generated method stub

}
展开
 我来答
百度网友9b7975073
2013-08-20
知道答主
回答量:18
采纳率:0%
帮助的人:14.8万
展开全部

错误处:    2处

地点:        判断月份的时候

修改方法(如图): 两处,在if(month==4,6,9,11)  前面 + else  即可

错误原因: 如下图(为其中一处错误)

                  第一个if   如果输入的月份是2月,进入在判断年份,如果为闰年,day=29

                  否则为28,


                  注意错误出现了


                  继续执行下一条 if判断,如果month==4||month==6。。。。省略

                

                  此时month==2,执行另一个else里面的语句 所以


                   days的值 变成了31


                (你之前的代码运行之后,如果输入的是2月的话,将会有31天,不信你试试)

            

追问
你这这不是只写了一个错误
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式