首页 > 代码库 > Java经典编程题50道之十四

Java经典编程题50道之十四

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

public class Example14 {
    public static void main(String[] args) {
        year(2017, 1, 1);
    }

    public static void year(int year, int month, int day) {
        int d = 0;
        int days = 0;
        if (year < 0 || month < 0 || month > 12 || day < 0 || day > 31) {
            System.out.println("输入错误,请重新输入!");
        }
        for (int i = 1; i < month; i++) {
            switch (i) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days = 30;
                break;
            case 2:
                if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
                    days = 29;
                } else {
                    days = 28;
                }
                break;
            }
            d += days;
        }
        System.out.println(year + "年" + month + "月" + day + "日是" + year + "的第"
                + (d + day) + "天。");
    }
}

Java经典编程题50道之十四