java 输入日期某年某月某日 查是第几天的程序问题?

importjava.util.Scanner;publicclassSun9{publicstaticvoidmain(String[]args){Scannerin=... import java.util.Scanner; public class Sun9 { public static void main(String[] args){ Scanner in =new Scanner(System.in); System.out.print("请输入年份:"); int year =in.nextInt(); System.out.print("请输入月份:"); int mouth = in.nextInt(); System.out.print("请输入几号:"); int day = in.nextInt(); int maxday=0; for(int i=1;i<mouth;i++){ switch(i){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: maxday+=31; break; case 4: case 6: case 9: case 11: maxday+=30; break; case 2: maxday+=28; break; default: System.out.println("输入月份错误!"); } } if((mouth)>2&&((year%4==0)&&year%100!=0)||(year%400==0)){ maxday++; } maxday+=day; System.out.println("此天是第:"+maxday+"天"); } } 输入后别的都正确 但当输入某年 13月 几号时 月份没有报错 是哪里有问题? 里面该怎么办?希望尽快回答!~ 展开
 我来答
炮炮兵0203
2014-06-22 · TA获得超过167个赞
知道答主
回答量:120
采纳率:0%
帮助的人:107万
展开全部
public class Sun9 { public static void main(String[] args) { Scanner in =new Scanner(System.in); System.out.print("请输入年份:"); int year =in.nextInt(); System.out.print("请输入月份:"); int mouth = in.nextInt(); System.out.print("请输入几号:"); int day = in.nextInt(); int maxday=0; for(int i=1;i<mouth;i++){ if(mouth>12) { year++; mouth-=12; } if(mouth<1) { year--; mouth=12-mouth; } switch(i){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: maxday+=31; break; case 4: case 6: case 9: case 11: maxday+=30; break; case 2: maxday+=28; break; default: System.out.println("输入月份错误!"); } } if((mouth)>2&&((year%4==0)&&year%100!=0)||(year%400==0)){ maxday++; } maxday+=day; System.out.println("此天是第:"+maxday+"天"); } }
希望采纳
饭桶爱大米侒
2014-06-22 · 超过59用户采纳过TA的回答
知道答主
回答量:178
采纳率:100%
帮助的人:51万
展开全部
当你输入13月时,你的for(int i=1;i<mouth;i++)这个循环里面i的值只能为12,当然不会报错,如果你把i<mouth改成i<=mouth就会报错了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式