当前位置 博文首页 > YHSevenWater的博客:Java从键盘输入年、月、日,判断这一天是当

    YHSevenWater的博客:Java从键盘输入年、月、日,判断这一天是当

    作者:[db:作者] 时间:2021-08-11 16:08

    仅用if,Switch-case语句实现,未涉及到算法,初学者的见解

    判断一年是否是闰年的标准:
    (1)可以被4整除,但是不能被100整除
    或者
    (2)可以被400整除

    package com.java.demo;
    import java.util.Scanner;   //导入Scanner类包,从键盘接收输入字符
    public class IsLeap {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入年份:");
            int year = scanner.nextInt();   //输入年份
            System.out.print("请输入月份(1~12):");
            int month = scanner.nextInt();  //输入月份
            System.out.print("请输入天数(1~31):");
            int day = scanner.nextInt();    //输入天数
            int temp = 0;   //创建变量temp,用于判断年份是否为闰年
            int Day = 0;    //创建变量Day,用于计算一年的总共天数
    
            if((year%4==0&&year%100!=0)||year%400==0){  //判断是否是闰年
                temp = 1;
            }
            else{
                temp = 0;
            }
    
            if(temp == 0){  //如果不是闰年,二月月份为28天。
                if(month == 2){ //二月是平月,需要做特殊判断。
                    if(day > 28)
                    {
                        System.out.println("您的天数输入有误!请重新输入天数(1~28):");
                        int day2 = scanner.nextInt();   //重新输入天数(1~28)
                        Day = day2+31;
                        System.out.println("该年不是闰年,这一天为该年的第"+Day+"天!");
                    }
                }
                else{
                    switch (month) {
                        case 1:
                            Day = 0;
                            break;
                        case 2:
                            Day = 31;
                            break;
                        case 3:
                            Day = 31 + 28;
                            break;
                        case 4:
                            Day = 31 + 28 + 31;
                            break;
                        case 5:
                            Day = 31 + 28 + 31 + 30;
                            break;
                        case 6:
                            Day = 31 + 28 + 31 + 30 + 31;
                            break;
                        case 7:
                            Day = 31 + 28 + 31 + 30 + 31 + 30;
                            break;
                        case 8:
                            Day = 31 + 28 + 31 + 30 + 31 + 30 + 31;
                            break;
                        case 9:
                            Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31;
                            break;
                        case 10:
                            Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
                            break;
                        case 11:
                            Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
                            break;
                        case 12:
                            Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
                            break;
                    }
                    Day += day;
                    System.out.println("该年不是闰年,这一天为该年的第"+Day+"天!");
                }
            }
            else{  //如果是闰年,二月月份为29天。
                if(month == 2){ //同理,二月是平月,需要做特殊判断。
                    if(day > 29)
                    {
                        System.out.println("您的天数输入有误!请重新输入天数(1~29):");
                        int day2 = scanner.nextInt();   //重新输入天数(1~29)
                        Day = day2+31;
                        System.out.println("该年是闰年,这一天为该年的第"+Day+"天!");
                    }
                }
                else{
                    switch (month) {
                        case 1:
                            Day = 0;
                            break;
                        case 2:
                            Day = 31;
                            break;
                        case 3:
                            Day = 31 + 29;
                            break;
                        case 4:
                            Day = 31 + 29 + 31;
                            break;
                        case 5:
                            Day = 31 + 29 + 31 + 30;
                            break;
                        case 6:
                            Day = 31 + 29 + 31 + 30 + 31;
                            break;
                        case 7:
                            Day = 31 + 29 + 31 + 30 + 31 + 30;
                            break;
                        case 8:
                            Day = 31 + 29 + 31 + 30 + 31 + 30 + 31;
                            break;
                        case 9:
                            Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31;
                            break;
                        case 10:
                            Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
                            break;
                        case 11:
                            Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
                            break;
                        case 12:
                            Day = 31 + 29 + 31 + 30 + 31