for(int A=1;A<=moutht;A++){...}这里面的代码才是判断月份的,你第一个: for(int M=mouth;M<=12;M++)除了算出一年是366天还是365天外毫无意义,而且你前面已经算过如果是闰年+366天,不是闰年+365天了。所以导致你多算了1年,最后sum+=dayt-day;的确前面-掉了,但那句其实也可以删了,在那个地方-有点不清晰。
下面是我改过的代码你可以运行下试试
package com.itcast.test;
import java.util.*;
public class sumDay {
public static void main (String[] args){
Scanner X=new Scanner(System.in);
int sum=0;
System.out.println("请输入你的出生年份(只需填写数字)");
int year=X.nextInt();
System.out.println("请输入你的出生月份(只需填写数字)");
int mouth=X.nextInt();
System.out.println("请输入你的出生日期(只需填写数字)");
int day=X.nextInt();
System.out.println("请输入现在的年份(只需填写数字)");
int yeart=X.nextInt();
System.out.println("请输入现在的月份(只需填写数字)");
int moutht=X.nextInt();
System.out.println("请输入现在的日期(只需填写数字)");
int dayt=X.nextInt();
for(int Y=year;Y<yeart;Y++){
if(Y%4==0&&Y%100!=0||Y%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int A=1;A<moutht;A++){
if(A==2){
if(yeart%4==0&&yeart%100!=0||yeart%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(A==4||A==6||A==9||A==11){
sum+=30;
}else{
sum+=31;
}
}
}sum+=dayt-day;
System.out.println("你至今活了"+sum+"天!");
}
}