注册 登录
编程论坛 JAVA论坛

请大神解析怎么改

自学ii 发布于 2017-01-21 15:58, 1233 次点击
import java.util.*;
public class sdf {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
         String a;
         do {
                 System.out.println("请输入年份:");
                 int year=in.nextInt();
                 System.out.println("请输入月份:");
                 int month=in.nextInt();
                 int sum=0;
                 for(int i=1900;i<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 m=sum%7;
                 System.out.println("日\t一\t二\t三\t四\t五\t六");
                 for(int i=1;i<=m;i++){
                     System.out.print("\t");
                 }   
                 for(int i=1;i<30;i++){
                     if(sum%7==6){
                         System.out.print(i+"\n");
                     }else{
                         System.out.print(i+"\t");
                     }
                     sum++;
            
                     System.out.print("否继续查询?(Y/N):");
                     a=in.next();
                 }while (a.equals("Y"));
         }
    }
}
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
2 回复
#2
GrayJerry2017-01-21 17:42
回复 楼主 自学ii
while这句话在51行的括号后面
#3
纵横阳仔2017-01-22 10:09
import java.util.*;
public class sdf {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
         String a;
         do {
                 System.out.println("请输入年份:");
                 int year=in.nextInt();
                 System.out.println("请输入月份:");
                 int month=in.nextInt();
                 int sum=0;
                 for(int i=1900;i<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 m=sum%7;
                 System.out.println("日\t一\t二\t三\t四\t五\t六");
                 for(int i=1;i<=m;i++){
                     System.out.print("\t");
                 }   
                 for(int i=1;i<30;i++){
                     if(sum%7==6){
                         System.out.print(i+"\n");
                     }else{
                         System.out.print(i+"\t");
                     }
                     sum++;
            
                     System.out.print("否继续查询?(Y/N):");
                     a=in.next();
                 }while (a.equals("Y"));
         }
    }
}
请将while语句后面的括号移到   sum++;后面。
我运行了一下,你的程序还是有问题的,输出的天数不正确,再改改吧

[此贴子已经被作者于2017-1-22 10:12编辑过]

1