练习-Java多路分支之月份天数计算

任务描述

本关任务:根据给定的年份和月份,获取该月份的天数。

提示:在求二月份的天数时,需要判断年份是否是闰年。闰年的条件是,年份是否能够被 400 整除,或者年份能够被 4 整除但是不能被 100 整除。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

参考答案

import java.util.Scanner;
/**
 * 任务:根据给定的年份和月份,获取该月份的天数。
 */
public class ApplicationTest {
    /**
     * 请在下面的 Begin - End 之间按照注释中给出的提示编写正确的代码。
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        int month = scanner.nextInt();
        int day = 0;
        /********** Begin **********/
        // 第一步:判断变量 month 是否为 1、3、5、7、8、10、12 内的月份,如果是,则将数值 31 赋值给变量 day
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            day = 31;
        }
        // 第二步:判断变量 month 是否为 4、6、9、11 内的月份,如果是,则将数值 30 赋值给 day
        else if (month == 4 || month == 6 || month == 9 || month == 11) {
            day = 30;
        }
        // 第三步:如果以上条件都不满足,则进入最后一种情况
        else {
            // 第四步:判断是否是闰年,是闰年,则将数值 29 赋值给 day;反之,则将数值 28 赋值给 day
            if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
                day = 29;
            } else {
                day = 28;
            }
        }
        /********** End **********/
        System.out.print(year + "年" + month + "月有" + day + "天");
    }
}

使用switch

import java.util.Scanner;

/**
 * 任务:根据给定的年份和月份,获取该月份的天数。
 */
public class ApplicationTest {

    /**
     * 请在下面的 Begin - End 之间按照注释中给出的提示编写正确的代码。
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        int month = scanner.nextInt();
        int day = 0;
        /********** Begin **********/
        // 第一步:判断变量 month 是否为 1、3、5、7、8、10、12 内的月份,如果是,则将数值 31 赋值给变量 day
		switch(month) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				day =31;
				break;

        // 第二步:判断变量 month 是否为 4、6、9、11 内的月份,如果是,则将数值 30 赋值给 day
			case 4:
			case 6:
			case 9:
			case 11:
				day =30;
				break;

        // 第三步:如果以上条件都不满足,则进入最后一种情况
			case 2:
				if(year%400==0 ||year%4==0&&year%100!=0) {
					day= 29;
				}else {
					day =28;
				}
		}
        // 第四步:判断是否是闰年,是闰年,则将数值 29 赋值给 day;反之,则将数值 28 赋值给 day


        /********** End **********/
        System.out.print(year + "年" + month + "月有" + day + "天");
    }
}

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121181591