犯错点:
1.获取年总天数的时候y<=year 导致数据不准,原因是把键入年份的年天数也加进去了
public static void main(String[] args) {
//键入一个日期 输入星期几
Scanner scan = new Scanner(System.in);
System.out.println("请输入年");
int year = scan.nextInt();
System.out.println("请输入月");
int month = scan.nextInt();
System.out.println("请输入日");
int day = scan.nextInt();
int allDays = 0;
//第一步获取年总天数1900年为依据
for (int y=1900;y<year;y++){
//判断年,闰不闰
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){
allDays +=366;
}else{
allDays +=365;
}
}
//获取月份总天数
for (int m=1;m<month;m++){
switch (m){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:allDays += 31;break;
case 2:if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
allDays +=29;
}else{
allDays +=28;
}
break;
default:allDays +=30;break;
}
}
//计算星期几
switch ((allDays+day)%7){
case 0:System.out.println(year+"年"+month+"月"+day+"日是:星期日");break;
case 1:System.out.println(year+"年"+month+"月"+day+"日是:星期一");break;
case 2:System.out.println(year+"年"+month+"月"+day+"日是:星期二");break;
case 3:System.out.println(year+"年"+month+"月"+day+"日是:星期三");break;
case 4:System.out.println(year+"年"+month+"月"+day+"日是:星期四");break;
case 5:System.out.println(year+"年"+month+"月"+day+"日是:星期五");break;
case 6:System.out.println(year+"年"+month+"月"+day+"日是:星期六");break;
}
}