计算某个日子是该年的第几天

来源:4-6 Java条件语句之 switch

猫骨_

2018-09-26 13:03

使用switch语句怎么写


写回答 关注

2回答

  • 慕标92898
    2018-09-26 16:25:57
    已采纳
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Exercises exe = new Exercises();
        System.out.print("请输入要计算的日期:"); // 2018-09-26
        int day = exe.getDay(input.next());
        System.out.println(day);
    }
    
    /**
     * 获取输入值所对应该年的第几天
     *
     * @param date
     * @return
     */
    public int getDay(String date) {
        String[] ymd = date.split("-");
        int inputYear = Integer.valueOf(ymd[0]);
        int inputMonth = Integer.valueOf(ymd[1]);
        int inputDay = Integer.valueOf(ymd[2]);
        int day = 0; // 天数
        Exercises exe = new Exercises();
        for (int i = 1; i <= (inputMonth - 1); i++) {
            day = day + exe.getMonthLastDay(i, inputYear);
        }
        return day + inputDay;
    }
    
    /**
     * 获取每个月的天数
     *
     * @param month
     * @param year
     * @return
     */
    public int getMonthLastDay(int month, int year) {
        int day = 31;
        switch (month) {
            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;
                }
                break;
        }
        return day;
    }


    猫骨_

    谢 大神

    2018-09-28 12:38:59

    共 1 条回复 >

  • 猫骨_
    2018-09-28 12:37:57

    谢,大神

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165550 学习 · 17586 问题

查看课程

相似问题