一、题目要求
JAVA 中利用switch语句 判断某年某月某号是这一年的第几天
二、实现代码
import java.util.Scanner;
/*
data by 2022.7.18
编写程序:某年某月某日在这一年有几天
*/
public class TestMonth02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//输入年
System.out.println("请输入年:");
int year = input.nextInt();
if(year > 0){
System.out.println("请输入月:");
int month = input.nextInt();//输入月份
if(month >=0 && month <= 12){
System.out.println("请输入号:");//输入几号
int day = input.nextInt();
if(day>=0 && day <=31)
{
int days = day;//先将天数放在days内,再把 之前所有月份相对应的天数加上
//使用一个switch进行累加,神奇之笔
switch (month){
case 12:
days += 30;//倒着加,此处不使用break,若是12月,则累加的是12月之前的月份,此处累加11月份天数
case 11:
days += 31;//此处累加10月份天数,以此类推,累加的是前一个月份
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;//累加的是前一个月份,是2月的天数,平年加28
if(year % 4 ==0 && year % 100 != 0 || year % 400 ==0){
days++;//闰年再加1
}
case 2:
days += 31;//31代表1月总天数
}
System.out.println( year +"年" + month + "月" + day +"号是这一年的第" + days +"天。");
}else{
System.out.println("输入有误");
}
}else{
System.out.println("输入有误");
}
}else{
System.out.println("输入有误");
}
input.close();
}
}