JAVA求助

@Ta 2019-01-20 990点击
import java.util.Scanner;

public class test3{
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;year<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;
}
}else{
if(i==4||i==6||i==9||i==11){
sum+=30;
}else{
sum+=31;
}
  }
   }
sum+=1;
int wekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1; i<=wekday; i++){
System.out.print("\t");
}
int y;
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){
y=29;
}else{
y=28;
}
}else{
     if(month==4||month==6||month==9||month==11){
  y=30;
      }else{
  y=31;
     }
}
for(int i=1;i<=y;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}


请问各位大神,为什么运行出来的结果和日历差一天,哪里出错了?
小米8周年旗舰手机
回复列表(7)
  • @Ta / 2019-01-20
    @石头会飞翔@BuYi
    小米8周年旗舰手机
  • @Ta / 2019-01-20

    帮你格式化一下

    import java.util.Scanner;
    
    public class test3 {
        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; year < 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;
                    }
                } else {
                    if ((i == 4) || (i == 6) || (i == 9) || (i == 11)) {
                        sum += 30;
                    } else {
                        sum += 31;
                    }
                }
            }
    
            sum += 1;
    
            int wekday = sum % 7;
            System.out.println("日\t一\t二\t三\t四\t五\t六");
            for (int i = 1; i <= wekday; i++) {
                System.out.print("\t");
            }
    
            int y;
    
            if (month == 2) {
                if ((((year % 4) == 0) && ((year % 100) != 0)) ||
                        ((year % 400) == 0)) {
                    y = 29;
                } else {
                    y = 28;
                }
            } else {
                if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
                    y = 30;
                } else {
                    y = 31;
                }
            }
    
            for (int i = 1; i <= y; i++) {
                if ((sum % 7) == 6) {
                    System.out.print(i + "\n");
                } else {
                    System.out.print(i + "\t");
                }
    
                sum++;
            }
        }
    }
    
    


    CentOS 9

  • @Ta / 2019-01-20
    @熊二哈,你会吗?
    小米8周年旗舰手机
  • @Ta / 2019-01-20
    @熊二哈,求助
    小米8周年旗舰手机
  • @Ta / 2019-01-20
    for(int i=1900;year<year;i++)   year<year。。。。。。
  • @Ta / 2019-01-20
    @,没改好
    小米8周年旗舰手机
  • @Ta / 2019-01-20
    @,可以了,万分感谢!
    小米8周年旗舰手机
添加新回复
回复需要登录

[聊天-此处没有老虎] 呆哥: 明盘域名出售页:XXS.ME