控制台输入年月日,输出该日期为该年的第多少天?(java基础开发只用if..else if..和switch...case)
方法一:只用if..else
System.out.print("请输入年份:"); int year=input.nextInt(); int sum = 0; if(year>=1900&&year<=2099){//较验年份 System.out.print("请输入月份:"); int mouth = input.nextInt(); boolean isLeapYear = (year%4==0 && year%100!=0)||year%400==0;//判断闰年 if(mouth<=12&&mouth>=1) {//校验月份 System.out.print("请输入日:"); int day = input.nextInt(); int cheakDay = 0; for(int i = 1;i<=mouth;i++){ if(i == 4 || i == 6 || i == 9 || i == 10 || i == 11){ sum += 30; cheakDay = 30; }else if(isLeapYear && i == 2){ sum += 29; cheakDay = 29; }else if(!isLeapYear && i == 2){ sum += 28; cheakDay = 28; }else { sum += 31; cheakDay = 31; } } if(day>0&&day<=cheakDay){//校验日 sum = (sum+day)-cheakDay; System.out.println(year+"年"+mouth+"月"+day+"日,在该年中的第"+sum+"天"); }else { System.out.println("输入正确的日"); } }else{ System.out.println("请输入正确的月份"); } }else{ System.out.println("请输入正确的年份"); }
方法二:加入switch...case
int year, month, day; System.out.println("请输入4位年"); year = input.nextInt(); System.out.println("请输入月"); month = input.nextInt(); System.out.println("请输入日"); day = input.nextInt(); if (year < 1900 || year > 2099) { System.out.println("请输入正确的年,在1900-2099之间"); } else if (month < 1 || month > 12) { System.out.println("请输入正确的月,在1-12之间"); } else { boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;//判断闰年 int days = 31; switch (month) { case 4: case 6: case 9: case 11: days = 30; break; case 2: days = isLeapYear ? 29 : 28; break; } if (day < 1 || day > days) { System.out.println("请输入1至" + days + "之间的天数"); } else { int total = day; for (int i = 1; i < month; i++) { days = 31; switch (i) { case 4: case 6: case 9: case 11: days = 30; break; case 2: days = isLeapYear ? 29 : 28; break; } total += days; } String info = MessageFormat.format("{0}年{1}月{2}日是{0}年的第{3}天", year, month, day, total); System.out.println(info); } }