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


    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)+"天");

    }


效果图如下:

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