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

三、运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华不在意

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值