/**
 * 计算每年第一天是星期几的小程序
 * 帮看一下什么地方有问题啊!*/
import java.util.Scanner;
public class F {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入年份");
int year = sc.nextInt();
long sum = 0;

for(int i=1;i<=year;i++) {
int days;
if((i%4==0 && i%100!=0)||(i%400==0)) {
 days = 366;
}else {
days = 365;
}
sum += days;
}
System.out.print(sum%7);
}

}

解决方案 »

  1.   

    这句有问题.
    for(int i=1;i<=year;i++);应该是:
    for(int i=1;i<=(year_1);i++);
      

  2.   

    没有问题啊。周日就是1,周六是7.
    你可以Calendar写的程序验证一下:import java.util.Calendar;
    import java.util.Scanner;public class Test {
        public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         System.out.print("请输入年份:");
         int year = sc.nextInt();
         Calendar ca = Calendar.getInstance();
         ca.clear();
         ca.set(year, 0,1);
         int dayOfWeek =ca.get(Calendar.DAY_OF_WEEK);
         switch(dayOfWeek)
         {
         case 1:System.out.println("星期日");break;
         case 2:System.out.println("星期一");break;
         case 3:System.out.println("星期二");break;
         case 4:System.out.println("星期三");break;
         case 5:System.out.println("星期四");break;
         case 6:System.out.println("星期五");break;
         case 7:System.out.println("星期六");break;
         default:System.out.println("数据错误");break;
         }
        }
    }
      

  3.   

    还是有点问题,公元元年第一天是周几?你还是用Calendar实现吧。
      

  4.   

    还是用Calendar,LZ从1算到2010年的天数,int还不一定够,而且太耗时了