输入年,月,日,判断该日期是当年的第几天。
菜鸟入门版:
import java.util.Scanner;
class SwitchCaseTest {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入年份:");
int years=scan.nextInt();
System.out.println("请输入"+years+"年对应的月份:");
int month1=scan.nextInt();
while((month1>12)||(month1<1)) {//判断月份是否合法,若不合法,提示重新输入
System.out.println("输入的月份有误!请重新输入"+years+"年对应的月份:");
int x=scan.nextInt();
month1=x;
}
System.out.println("请输入"+years+"年"+month1+"月对应的日期:");
int day1=scan.nextInt();
boolean flag=true;
while(flag) {//根据月份判断输入的日期是否合法
switch(month1) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day1 >= 1 && day1<=31){
flag=false;
break;
}
case 4:
case 6:
case 9:
case 11:
if (day1 >= 1 && day1<=30){
flag=false;
break;
}
case 2:
if ((years % 4 == 0 && years % 100 != 0 )|| (years % 400 == 0)){
if (day1 >=1 && day1 <= 29){
flag=false;
break;
}
}
else if(day1 >= 1 && day1 <= 28){
flag=false;
break;
}
}
if(flag) {//若输入的日期不合法,则重复提示并允许重新输入
System.out.println("输入的日期有误!请重新输入"+years+"年"+month1+"月份的日期:");
int y=scan.nextInt();
day1=y;
}
}
int sumDays=0;
switch(month1) {//根据输入计算对应天数
case 12:
sumDays+=30;
case 11:
sumDays+=31;
case 10:
sumDays+=30;
case 9:
sumDays+=31;
case 8:
sumDays+=31;
case 7:
sumDays+=30;
case 6:
sumDays+=31;
case 5:
sumDays+=30;
case 4:
sumDays+=31;
case 3:
if(((years%4 == 0)&&(years % 100 != 0)) || (years % 400 == 0)){
sumDays+=29;
}
else {
sumDays+=28;
}
case 2:
sumDays+=31;
case 1:
sumDays+=day1;
}
System.out.println(years+"年"+month1+"月"+day1+"日是"+years+"年的第"+sumDays+"天!");
}
}
初版。下批版本慢慢完善。
目前可判断月份输入的合法性,
根据所输入的月份,可判断日期输入的合法性。
对于闰年和平年,2月份的天数也做了合法性检测。
年份未做检测。