这段昨日里的代码 我怎么看 总觉得 没什么错误  但为什么每次 运行的时候 得到的结果 怎么总是和日历对不住 请大哥们 帮我找出 我这里的问题 更正后 并加以批注  谢谢 了package riLi;import java.util.Scanner;public class wanNianLi {
public static void main(String[] args) {
int nian=0 ,days = 0 ,yue=0 , xingqi=0;
Scanner input = new Scanner(System.in);
System.out.print("请输入年:");
nian = input.nextInt();
System.out.print("请输入月:");
yue = input.nextInt();
for(int i = 1990 ;i < nian ;i++){
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=366;
}
else{days+=365;
}
}
for(int i = 1 ; i < yue ; i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if((nian%4==0&&nian%100!=0)||nian%400==0){
days+=29;
}else{
days+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days+=30;
break;

}
}
System.out.println("总天数"+days);
xingqi = days%6+1;
System.out.print(nian+"年"+yue+"的第一天星期"+xingqi);
}}

解决方案 »

  1.   

    xingqi = days % 6 + 1;1. 是不是 xingqi = days % 7 + 1?
    2. 1990-01-01那天是星期一吗?
      

  2.   

    第一处:for(int i = 1990 ;i < nian ;i++){ //这里应该是 i 而不是 nian
    if((nian%4==0&&nian%100!=0)||nian%400==0){
    days+=366;
    }
    else{days+=365;
    }
    }
    第二处xingqi = days%6+1; // 应该是days % 7
      

  3.   

    package com.liz.kinds;import java.util.Scanner;public class WanNianLi {
    public static void main(String[] args) {
    int nian=0 ,days = 0 ,yue=0 , xingqi=0;
    Scanner input = new Scanner(System.in);
    System.out.print("请输入年:");
    nian = input.nextInt();
    System.out.print("请输入月:");
    yue = input.nextInt();
    for(int i = 1990 ;i < nian-1 ;i++){
    if((nian%4==0&&nian%100!=0)||nian%400==0){
    days+=366;
    }
    else{
    days+=365;
    }
    }

    for(int i = 1 ; i < yue ; i++){
    switch(i){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    days+=31;
    break;
    case 2:
    if((nian%4==0&&nian%100!=0)||nian%400==0){
    days+=29;
    }else{
    days+=28;
    }
    break;
    case 4:
    case 6:
    case 9:
    case 11:
    days+=30;
    break;
    }
    }
    System.out.println("总天数"+days);
    xingqi = days%7;
    System.out.print(nian+"年"+yue+"月的第一天星期"+xingqi);
    }
    }标红的地方是改动的,算天数的时候多算了一年,最后除的时候是除7
      

  4.   


    for(int i = 1990 ;i < nian ;i++){ 
    if((nian%4==0&&nian%100!=0)||nian%400==0){//这里应该是 i 而不是 nian
    days+=366;
    }
    else{days+=365;
    }
    }刚才标错位置了!
      

  5.   

    第一处:for(int i = 1990 ;i < nian ;i++){ //这里应该是 i 而不是 nian
    if((nian%4==0&&nian%100!=0)||nian%400==0){
    days+=366;
    }
    else{days+=365;
    }
    }
    第二处:xingqi = days%6+1; // 应该是xingqi = days%7+1