JAVA 利用switch语句 判断某年某月某号是这一年的第几天

一、题目要求

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();
    }
}

三、运行结果

在这里插入图片描述


版权声明:本文为weixin_51733609原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。