java新手求教!

import java.util.*;
class T12{
public static void main(String[] arg){
题目是输入一个年份和月份,输出是年月和这个月有多少天,只能用if我这个到底错哪里了?输入其他的月份可以,输入2月份得出的天数都是31天,我明明设了条件的呀,看了好久真不知道错哪了。我不要代码,只求大神能帮我说下我错哪了。谢谢。
Scanner sc=new Scanner(System.in);
System.out.print("输入一个年份:");
int nf=sc.nextInt();
System.out.print("输入一个月份:");
int yf=sc.nextInt();
if((nf%4==0&&nf%100!=0)||(nf%400==0)&&yf==1||yf==3||yf==5||yf==7||yf==8||yf==10||yf==12){
System.out.print("今年是"+nf+"年"+yf+"月,这个月有"+31+"天");
}else if((nf%4!=0)&&yf==1||yf==3||yf==5||yf==7||yf==8||yf==10||yf==12){
System.out.print("今年是"+nf+"年"+yf+"月,这个月有"+31+"天");
}else if(nf%4==0&&nf%100!=0||nf%400==0&&yf==4||yf==6||yf==9||yf==11){
System.out.print("今年是"+nf+"年"+yf+"月,这个月有"+30+"天");
}else if(nf%4!=0&&yf==4||yf==6||yf==9||yf==11){
System.out.print("今年是"+nf+"年"+yf+"月,这个月有"+30+"天");
}else if(nf%4==0&&nf%100!=0||nf%400==0&&yf==2){
System.out.print("今年是"+nf+"年"+yf+"月,这个月有"+29+"天");
}else if(nf%4!=0&&yf==2){
System.out.print("今年是"+nf+"年"+yf+"月,这个月有"+28+"天");
}
}
}

把判断闰年的代码提取到一个单独的方法里。
减少大量重复代码。
if(yf==2)
if(isLoopYear(nf))
//29
else
//28
其它月就不用判断闰年。
门干switch(yf)也可以。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网