从键盘分别输入年、月、日,判断这是当年的哪一天?
public static void main(String[] args){
//首先明确要求,需要在键盘上分别输入三种数据去判断天数。这需要扫描仪录入。
Scanner scan=new Scanner(System.in);//新建一个扫描仪
//设置一个数组存储平年时每个月份的天数
int[] days={31,28,31,30,31,30,31,31,30,31,30,31};
int num=0;//设置初始天数为0
int month=0;//设置初始月数
int day=0;//设置初始日期
//这里设置好需要的变量是为了扩大变量的作用域范围
System.out.println("请输入年份");
int year=scan.nextInt();
if(year<0){//为了程序的健壮性,先判断用户输入的是否是正常的年份
System.out.println("请输入正确的年份");
}else{
if(year%4==0&&year%100!=0||year%400==0){//判断年数是否为闰年
days[1]=29;//将数组中的第二个元素赋值为29
}
System.out.println("请输入月份");
month=scan.nextInt();
if(month<0||month>12){//判断月份是否符合0-12范围
System.out.println("请输入正确的月份");
}else {
System.out.println("请输入日期");
day = scan.nextInt();
if(day<0||day>days[month-1]){//判断输入的日期是否小于0或大于该月最大日期
System.out.println("请输入正确的日期");
}else{
//因为计算天数不会让当月天数直接相加,所以循环到该月下标之前结束
for(int i=0;i<month-1;i++){
num+=days[i];
}
System.out.println(year+"年的第"+month+"中的第"+day+"天,是这一年的第"+num+"天");
}
}
}
}