Java基礎題目記錄-01

愛喝椰汁的木木發表於2020-12-16

計算使用者輸入的日期離1900年1月1日相距多少天

分析:

  • 本題需要用到鍵盤輸入:Scanner

  • 注意平年閏年, 閏年分為普通閏年和世紀閏年。
    i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)

  • 閏年二月份為29天,平年28天。

  • 逐步計算:首先進行最簡單的天數相差計算,然後看年份相差,最後看月份相差。

程式碼案例演示

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入年份:");
        int year = sc.nextInt();
        System.out.println("請輸入月份:");
        int month = sc.nextInt();
        System.out.println("請輸入日期:");
        int day = sc.nextInt();
        //日期天數相差
        int sumDay = day - 1;

        //年份天數相差
        for (int i = 1900; i < year; i++) {
            if ((i % 400 == 0) || (i % 4 == 0 && i % 100 != 0)) {
                sumDay += 366;
            }else {
                sumDay += 365;
            }
        }
        //月份相差天數
        for(int i = 1; i < month;i++){
            switch (i){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    sumDay += 31;
                    break;
                case 2:
                    if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)){
                        sumDay += 29;
                    }else {
                        sumDay += 28;
                    }
                    break;
                default:
                    sumDay += 30;
            }
        }
        System.out.println("相距1900年1月1日:" + sumDay + "天。");

    }

測試結果為:

在這裡插入圖片描述

相關文章