输入某年某月某日,是闰年还是平年,判断这一天是这一年的第几天?


    public static void main(String[] args) {
        //定义变量
        
        //年
        int year;
        //月
        int month;
        //固定天数
        int day=0;
        //输入的天数
        int days=0;
        
        //计算天数
        int d = 0;
        //标识
        int e = 0;
        Scanner scanner = new Scanner(System.in);
        
        do {
            System.out.println("请输入年份:");
            year = scanner.nextInt();
            System.out.println("请输入月份:");
            month = scanner.nextInt();
            System.out.println("请输入日:");
            days = scanner.nextInt();
            //判断     月  日      输入的值是否符合要求    
            if (month<0 || month>12 || days<0 || month>31) {
                System.out.println("输入有误");
                //标识
                e=1;
            }
        //如果输入错误则继续循环    
        } while (e==1);
        
        //循环
        for (int i = 0; i < month; i++) {
            //根据外循环来进行累加
            switch (i) {
                case 1:
                case 3:
                case 5:    
                case 7:    
                case 8:    
                case 10:    
                case 12:{
                    day=31;
                    break;
                }
                case 4:
                case 6:
                case 9:
                case 11:{
                    day=30;
                    break;
                }
                
                //    闰年: 非整百年数除以4,无余为闰,有余为平;②整百年数除以400,无余为闰有余平
                //     二月: 平年28天、闰年29天
                 
                case 2:{
                    //非整百年(year%100!=0)    %4        整百年(year%100==0)    %400    无余为闰
                    if ((year%100!=0 && year%4==0)||(year%100==0 && year%400==0)) {
                        //润
                        day=29;
                    }else {
                        //平
                        day=28;
                    }
                }
                default:
                    break;
                }
                //进行累加
                d+=day;
        }
        //输出判断是否为闰年
        if ((year%100!=0 && year%4==0)||(year%100==0 && year%400==0)) {
            System.out.println("这一年是闰年");
        }else{
            System.out.println("这一年是平年");
        }
        //                                    加上    输入的天数
        System.out.println("这是"+year+"年 的第"+(d+days)+"天");

    }


效果图如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值