java吧 关注:1,239,062贴子:12,709,594
  • 4回复贴,共1

求贴吧大神帮忙找下错误,新手,能力有限

取消只看楼主收藏回复

最新最java比较感兴趣,于是自学,刚学到for if 这些语句,自己编写了一个计算自己活了多久的代码,但是运行的时候计算明显有错误,但是自己找了一个多小时就是没法发现问题所在,每次计算都是多算396天,感觉for语句里的条件根本不可能成立啊,我1990.1.1-1990.1.2都能算397天,为什么会这样。好心塞,求师哥师姐给予解答,如果违反了吧规管理员就删了吧,不好意思了,只是想学习下。为谢。二楼放代码


IP属地:浙江1楼2014-08-08 09:43回复
    import java.util.*;
    public class howlongyoualive {
    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 M=mouth;M<=12;M++){
    if(M==2){
    if(year%4==0&&year%100!=0||year%400==0){
    sum+=29;
    }else{
    sum+=28;
    }
    }else{
    if(M==4||M==6||M==9||M==11){
    sum+=30;
    }else{
    sum+=31;
    }
    }
    }sum=sum-day;
    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;
    System.out.println("你至今活了"+sum+"天!");
    }
    }


    IP属地:浙江2楼2014-08-08 09:43
    回复
      复制粘贴好像格式很奇怪,不好意思了。


      IP属地:浙江3楼2014-08-08 09:44
      回复
        我可以自顶一下么


        IP属地:浙江4楼2014-08-08 09:51
        回复
          我再默默的顶一下


          IP属地:浙江5楼2014-08-08 10:01
          回复